首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery:尝试使用serializeArray()

jQuery:尝试使用serializeArray()
EN

Stack Overflow用户
提问于 2010-11-18 17:47:24
回答 2查看 4.6K关注 0票数 2

下面有密码。我希望它显示在JSON格式中的值和字段的名称,但只显示如下:

对象

代码语言:javascript
复制
<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>

问候

贾维

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-18 17:50:16

这是因为.serializeArray()返回如下所示的对象数组:

代码语言:javascript
复制
[{name: "name", value: "value"}....]

要获得您可以看到的字符串,请使用.serialize()如下所示:

代码语言:javascript
复制
alert($(this).serialize());

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

代码语言:javascript
复制
alert($.param($(this).serializeArray()));

为了明确起见,这是数据字符串的格式,例如GET或POST,如果要将其序列化为JSON,您应该自己使用JSON.stringify()

票数 6
EN

Stack Overflow用户

发布于 2014-08-26 13:48:14

对于那些想要更多的手工代码的人:fData=$("#myForm").serializeArray(); // or $("#myDiv :input").serializeArray(); //alert(fData.length) // how many inputs got picked up var msg=""; for(var i=0;i<fData.length;i++){ var raKy=Object.keys(fData[i]); msg+="\n"+raKy[0]+":"+eval("fData[i]."+raKy[0])+" "+raKy[1]+":"+eval("fData[i]."+raKy[1]); } alert(msg);,您可以通过使用注释掉的代码来将作用域限制在表单中的div。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4217887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档