2010-05-18 28 views
2

我在尋找,使用jQuery的1.4通過param()支持深序列化的命名約定連載的形式輸入對象的jQuery函數或插件:尋找一個jQuery插件序列化形式的對象

<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但它不遵循這個命名約定。

回答

3

由於沒有似乎是完成了我的尋求任何現有的庫,我搗碎位從​​幾個現有的庫那做類似的事情:

  • 來自jQuery BBQ的jQuery.deparam函數
  • 問題中提到的jQuery.serializeObject函數。

兩者都是由Ben Alman。謝謝,本!

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

0

嘗試使用jQuery表單插件。我沒有測試過,但我認爲這將解決您的問題

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

+0

我沒有看到在[API]什麼(http://jquery.malsup.com/form/#api)是我想要做什麼。 – John 2010-05-18 05:44:19

0

你不需要pluging。

$( '形式')提交(函數(){ 警報($(本).serializeArray()); 將返回false;} )。

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

+0

serializeArray不會做我問的;它會產生[{name:「a [b]」,value:「1」},{name:「a [c]」,value:「2」},...]。 – John 2010-05-18 14:30:34