如何在 javascript 中将表单转换为 Json 数组
How to convert a form to a Json array in javascript
我正在尝试将表单结果转换为以下格式。
{
"project": {
"id": 5,
"name": "max",
"identifier": "max_project",
"description": "This is description",
}
}
但是结果是这样的,
{name: "max", identifier: "max_project", description: "This is description"}
请帮助我更正代码以获得预期的结果。我正在尝试 post jsonp 格式的结果。
$("#submit").on('click', function() {
var data = {};
$("#form").serializeArray().map(function(x) {
data[x.name] = x.value;
});
console.log(data);
})
<form id="form" action="submit" method="post">
Name:
<input type="text" name="name">
<br>identifier:
<input type="text" name="identifier">
<br>description:
<textarea type="text" name="description"></textarea>
<br>
<input id="submit" type="button" name="submit" value="submit">
</form>
实现结果的最简单解决方案如下
$("#submit").on('click', function() {
var data = {project:{}};
$("#form").serializeArray().map(function(x) {
data["project"][x.name] = x.value;
});
console.log(data);
})
或者你这样做的方式但是把它放在另一个散列中
$("#submit").on('click', function() {
var project = {};
$("#form").serializeArray().map(function(x) {
project[x.name] = x.value;
});
var data = {project: project}
console.log(data);
})
有很多方法可以达到相同的结果
在JavaScript中,你有数组和对象,
数组和对象之间的区别在于它们的索引,
数组只接受整数索引,对象接受字符串。
这样一来,你就得不到你想要的东西了。
问题是为什么?!你为什么要那种格式?
我正在尝试将表单结果转换为以下格式。
{
"project": {
"id": 5,
"name": "max",
"identifier": "max_project",
"description": "This is description",
}
}
但是结果是这样的,
{name: "max", identifier: "max_project", description: "This is description"}
请帮助我更正代码以获得预期的结果。我正在尝试 post jsonp 格式的结果。
$("#submit").on('click', function() {
var data = {};
$("#form").serializeArray().map(function(x) {
data[x.name] = x.value;
});
console.log(data);
})
<form id="form" action="submit" method="post">
Name:
<input type="text" name="name">
<br>identifier:
<input type="text" name="identifier">
<br>description:
<textarea type="text" name="description"></textarea>
<br>
<input id="submit" type="button" name="submit" value="submit">
</form>
实现结果的最简单解决方案如下
$("#submit").on('click', function() {
var data = {project:{}};
$("#form").serializeArray().map(function(x) {
data["project"][x.name] = x.value;
});
console.log(data);
})
或者你这样做的方式但是把它放在另一个散列中
$("#submit").on('click', function() {
var project = {};
$("#form").serializeArray().map(function(x) {
project[x.name] = x.value;
});
var data = {project: project}
console.log(data);
})
有很多方法可以达到相同的结果
在JavaScript中,你有数组和对象, 数组和对象之间的区别在于它们的索引, 数组只接受整数索引,对象接受字符串。
这样一来,你就得不到你想要的东西了。
问题是为什么?!你为什么要那种格式?