Jquery - 通过 ID SerializeArray()

2024-02-25

我有这个问题,我使用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(使用前将#替换为@)

Jquery - 通过 ID SerializeArray() 的相关文章

随机推荐