是否有一种简单的单行方式来获取表单数据,就像以经典的纯HTML方式提交那样? 数组
例如: this
<form> <input type="radio" name="foo" value="1" checked="checked" /> <input type="radio" name="foo" value="0" /> <input name="bar" value="xxx" /> <select name="this"> <option value="hi" selected="selected">Hi</option> <option value="ho">Ho</option> </form>
输出: spa
{ "foo": "1", "bar": "xxx", "this": "hi" }
这样的事情太简单了,由于它不(正确地)包含文本区域,选择,单选按钮和复选框: code
$("#form input").each(function () { data[theFieldName] = theFieldValue; });
这会将全部表单字段附加到JavaScript对象“ res”: orm
var res = {}; $("#form input, #form select, #form textarea").each(function(i, obj) { res[obj.name] = $(obj).val(); })
使用.serializeArray()获取数组格式的数据,而后将其转换为对象: 对象
function getFormObj(formId) { var formObj = {}; var inputs = $('#'+formId).serializeArray(); $.each(inputs, function (i, input) { formObj[input.name] = input.value; }); return formObj; }
$("#form input, #form select, #form textarea").each(function() { data[theFieldName] = theFieldValue; });
除此以外,您可能须要查看serialize() ; ip
$('form').serialize() //this produces: "foo=1&bar=xxx&this=hi"
演示 get
$('#myform').serialize();