我有一个简单的 HTML 表单:
<form id="formid1" action="#" method="post">
<table>
<tr><td> First name: </td><td><input type="text" name="firstname" id="firstname"/> </td></tr>
<tr><td> Last name: </td><td><input type="text" name="lastname" id="lastname"/> </td></tr>
<tr><td> Address: </td><td> <input type="text" name="address" id="address"/> </td></tr>
<tr><td> Zip: </td><td> <input type="text" name="zip" id="zip"/> </td></tr>
<tr><td> Sex: </td><td> <input type="radio" name="sex" value="male" /> Male<br />
<input type="radio" name="sex" value="female" /> Female<br /></td></tr>
<tr><td> </td><td> <input type="submit" value="Submit" /></td></tr>
</table>
</form>
我需要获取表单元素的 JSON 表示形式,包括 ID、值、类型、表单操作、表单 ID 等。
我尝试使用以下代码,但没有得到我想要的东西:
<script>
$(document).ready(function(){
var encoded = $.toJSON($('#formid1'));
$("#formid1").submit(function() {
$.colorbox({html:'<p>Form Converted to JSON Data: <br /><br /><br /><br /><br /></p>'+ encoded });
return false;
});
});
</script>
我得到:
{"length":1,"0":{"firstname":{},"lastname":{},"address":{},"zip":{},"sex":{"0":{},"1":{}},"6":{}},"context":{"jQuery16108216209608688556":1},"selector":"#formid1"}
关闭
最佳答案
试试这个:
$('#formid1').serializeArray().reduce(function(obj, v) { obj[v.name] = v.value; return obj; }, { });
关于javascript - 如何将标准 HTML 表单转换为包含所有数据的 JSON 表示形式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7181276/