我有这个问题,我使用serializearray() jquery将Form的所有字段序列化为Json。
如果在输入中输入 name 属性,它可以正常工作,但如果我只想输入 ID 属性,它就不起作用。
这个好函数的名字[名称类似:'#myformnameid']:
function formToJson(nameForm)
{
var jsonForm={};
var queryFrom = $(nameForm).serializeArray();
for (i in queryFrom) {
jsonForm[queryFrom[i].name] = queryFrom[i].value;
}
return jsonForm;
}
我尝试使用 attr 来解决 ID 问题。
function formToJson(nameForm)
{
var jsonForm={};
var queryFrom = $(nameForm).serializeArray();
for (i in queryFrom) {
jsonForm[queryFrom[i].attr("id")] = queryFrom[i].value;
}
return jsonForm;
}
任何想法?
What serializeArray
所做的就是采用表单输入对象并将它们转换为 JavaScript 对象数组。来自文档 http://api.jquery.com/serializeArray/,形式类似于
[
{
name: "a",
value: "1"
},
{
name: "b",
value: "2"
},
{
name: "c",
value: "3"
}
]
您可以按名称或值迭代此数组,就像您正在做的那样,它将返回正确的数据。
您遇到的问题是您不再迭代实际元素,而只是迭代这些元素中的数据。如果您想迭代元素,则需要执行以下操作:
function formToJson(nameForm)
{
var jsonForm={};
$("input", $(nameForm)).each(function(index){
jsonForm[$(this).attr("id")] = this.value;
})
return jsonForm;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)