jQuery:尝试使用serializeArray()

zii*_*web 2 jquery

我有下面的代码.我希望它以JSON格式显示字段的值和名称,但只显示:

[object Object],[object Object],[object Object],[object Object],[object Object]

<script type="text/javascript">

$(document).ready(function() {


                $('#forma').submit(function() {

                    alert($(this).serializeArray());
                    return false;
                 });

});    

</script>


<form id="forma">
  <div><input type="text" name="a" value="1" id="a" /></div>
  <div><input type="text" name="b" value="2" id="b" /></div>
  <div><input type="hidden" name="c" value="3" id="c" /></div>
  <div>
    <textarea name="d" rows="8" cols="40">4</textarea>
  </div>
  <div><select name="e">
    <option value="5" selected="selected">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
  </select></div>
  <div>
    <input type="checkbox" name="f" value="8" id="f" />
  </div>
  <div>
    <input type="submit" name="g" value="Submit" id="g" />
  </div>
</form>
Run Code Online (Sandbox Code Playgroud)

问候

哈维

Nic*_*ver 5

那是因为.serializeArray()返回一个像这样的对象数组:

[{name: "name", value: "value"}....]
Run Code Online (Sandbox Code Playgroud)

要获得一个你可以看到的字符串,请使用.serialize()如下:

alert($(this).serialize());
Run Code Online (Sandbox Code Playgroud)

这与调用$.param()数组相同,如下所示:

alert($.param($(this).serializeArray()));
Run Code Online (Sandbox Code Playgroud)

要清楚,这是数据字符串的格式,例如GET或POST,JSON.stringify()如果要将其序列化为JSON ,则应自行使用.