下面有密码。我希望它显示在JSON格式中的值和字段的名称,但只显示如下:
对象
<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>问候
贾维
发布于 2010-11-18 17:50:16
这是因为.serializeArray()返回如下所示的对象数组:
[{name: "name", value: "value"}....]要获得您可以看到的字符串,请使用.serialize()如下所示:
alert($(this).serialize());这与调用数组上的$.param()相同,如下所示:
alert($.param($(this).serializeArray()));为了明确起见,这是数据字符串的格式,例如GET或POST,如果要将其序列化为JSON,您应该自己使用JSON.stringify()。
发布于 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。
https://stackoverflow.com/questions/4217887
复制相似问题