如何使用数组名称对serializeArray()进行命名

时间:2019-06-29 22:12:09

标签: jquery arrays json serialization

我有这个HTML代码:

<input type="checkbox" name="search-form[filters][category][12]" value="cat-12" autocomplete="off" checked="checked" />
<input type="checkbox" name="search-form[filters][category][14]" value="cat-14" autocomplete="off" checked="checked" />

当我像这样使用jQuery函数serializeArray()时:

var $postForm = $("#myForm");
console.dir( $postForm.serializeArray() );

我明白了:

[
  {
    "name": "search-form[filters][category][12]",
    "value": "cat-12"
  },
  {
    "name": "search-form[filters][category][14]",
    "value": "cat-14"
  }
]

我怎么得到这个:

[
    {
      "search-form"{
             "filters" : {
                   "category" : {
                            "12" : { "value" : "cat-12" },
                            "14" : { "value" : "cat-14" }
                    }
              }  
         }    
    }
]

1 个答案:

答案 0 :(得分:1)

遵循git仓库可以解决您的问题。

https://github.com/marioizquierdo/jquery.serializeJSON

  

支持表单输入,文本区域和选择标签。可以使用attr [nested] [nested]语法指定嵌套的属性和数组。