jQuery-ID的SerializeArray() [英] Jquery - SerializeArray() by ID

查看:117
本文介绍了jQuery-ID的SerializeArray()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这个问题,我使用serializearray()jQuery将Form的所有字段序列化为Json. 如果在输入中放置了name属性,但如果我只想放置ID属性,则效果很好.

I have this problem, I use serializearray() jquery for serialize all fields of Form to Json. It works fine if in the input I put the name attribute, but if I'd like to put only the ID attribute It doesn't work.

好的名称函数[名称类似:'#myformnameid']:

The good function by name [name is similar: '#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解决方案.

I tried for ID solution with attr.

function formToJson(nameForm)
{
 var jsonForm={};
 var queryFrom = $(nameForm).serializeArray();

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

有什么想法吗?

推荐答案

serializeArray的作用是采用输入对象的形式,并将它们转换为javascript对象的数组.在文档中,该表单类似于

What serializeArray does is take the form input objects and converts them into an array of javascript objects. From the documentation, the form is similar to

[
  {
    name: "a",
    value: "1"
  },
  {
    name: "b",
    value: "2"
  },
  {
    name: "c",
    value: "3"
  }    
]

您可以像执行操作一样通过名称或值遍历此数组,它将返回正确的数据.

You can iterate over this array by name or value, like you're doing, and it will return the proper data.

您遇到的问题是您不再遍历实际元素,而仅遍历那些元素中的数据.如果要遍历元素,则需要执行以下操作:

The problem you're having is that you're not iterating over the actual elements anymore, just the data from those elements. If you'd like to iterate over the elements, you'll need to do something like:

function formToJson(nameForm)
{
 var jsonForm={};
 $("input", $(nameForm)).each(function(index){
   jsonForm[$(this).attr("id")] = this.value;
 })
 return jsonForm;
}

这篇关于jQuery-ID的SerializeArray()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆