首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Jquery - SerializeArray() by ID

Jquery - SerializeArray() by ID
EN

Stack Overflow用户
提问于 2012-08-28 14:27:58
回答 2查看 5K关注 0票数 2

我遇到了这个问题,我使用serializearray() jquery将表单的所有字段序列化为Json。如果我在输入中放入name属性,它会工作得很好,但如果我想只放入ID属性,它就不能工作。

good函数的名称类似:'#myformnameid‘

代码语言:javascript
运行
复制
function formToJson(nameForm)
{
 var jsonForm={};
 var queryFrom = $(nameForm).serializeArray();

 for (i in queryFrom) {
   jsonForm[queryFrom[i].name] = queryFrom[i].value;
  }
 return jsonForm;
}

我尝试使用attr来解决ID问题。

代码语言:javascript
运行
复制
function formToJson(nameForm)
{
 var jsonForm={};
 var queryFrom = $(nameForm).serializeArray();

 for (i in queryFrom) {
   jsonForm[queryFrom[i].attr("id")] = queryFrom[i].value;
  }
 return jsonForm;
}

有什么想法吗?

EN

Stack Overflow用户

回答已采纳

发布于 2012-08-28 22:34:22

serializeArray所做的是获取表单输入对象,并将它们转换为javascript对象数组。在documentation中,该表单类似于

代码语言:javascript
运行
复制
[
  {
    name: "a",
    value: "1"
  },
  {
    name: "b",
    value: "2"
  },
  {
    name: "c",
    value: "3"
  }    
]

您可以通过名称或值来迭代此数组,就像您所做的那样,它将返回适当的数据。

您遇到的问题是,您不再迭代实际的元素,而只是迭代来自这些元素的数据。如果你想遍历元素,你需要做一些类似的事情:

代码语言:javascript
运行
复制
function formToJson(nameForm)
{
 var jsonForm={};
 $("input", $(nameForm)).each(function(index){
   jsonForm[$(this).attr("id")] = this.value;
 })
 return jsonForm;
}
票数 4
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12153831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档