寻找一个jquery插件来将表单序列化为对象

时间:2010-05-18 05:28:53

标签: javascript jquery

我正在寻找一个jQuery函数或插件,它使用jQuery 1.4中param()支持的深度序列化的命名约定将表单输入序列化为对象:

<form>
  <input name="a[b]" value="1"/>
  <input name="a[c]" value="2"/>
  <input name="d[]" value="3"/>
  <input name="d[]" value="4"/>
  <input name="d[2][e]" value="5"/>
</form>

$('form').serializeObject(); // { a: { b:"1",c:"2" }, d: ["3","4",{ e:"5" }] }

Prototype的Form.serialize方法可以做到这一点。什么是jQuery等价物?我找到了this plugin,但它没有遵循这个命名约定。

4 个答案:

答案 0 :(得分:3)

由于似乎没有任何现有的库可以完成我所寻求的工作,因此我从几个现有库中完成了类似的工作:

  • 来自jQuery BBQ
  • 的jQuery.deparam函数
  • 问题中提到的jQuery.serializeObject函数。

两者都是Ben Alman。谢谢,本!

结果:http://gist.github.com/405448

答案 1 :(得分:0)

尝试使用jquery表单插件。我没有测试过,但我认为它会解决你的问题

http://jquery.malsup.com/form/

答案 2 :(得分:0)

你不需要插件。 $('form')。submit(function(){alert($(this).serializeArray()); return false; });

看看 http://api.jquery.com/serializeArray/

答案 3 :(得分:0)

也许迟到了,但是有一个jQuery插件可以满足您的需求。

http://v3.javascriptmvc.com/index.html#&who=jQuery.fn.formParams