代码之家  ›  专栏  ›  技术社区  ›  John

正在查找jquery插件以将表单序列化为对象[已关闭]

  •  2
  • John  · 技术社区  · 16 年前

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

    <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" }] }
    

    原型的 Form.serialize 方法可以做到这一点。jquery的等价物是什么?我发现 this plugin 但它不遵循这个命名约定。

    4 回复  |  直到 16 年前
        1
  •  3
  •   Community Mohan Dere    9 年前

    由于似乎没有任何现有的库能够完成我所寻找的任务,所以我将一些执行类似任务的现有库中的部分混合起来:

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

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

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

        2
  •  0
  •   Starx    16 年前

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

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

        3
  •  0
  •   user299848    16 年前

    你不需要插电。

    $('form').Submit(function()){ alert($(this).serialiarray()); 返回错误; (});

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

        4
  •  0
  •   Giacomo    16 年前

    可能很晚了,但有一个jquery插件thad做了你需要的。

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