是否有一種簡單的單行方式來獲取表單數據,就像以經典的純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();