有没有一种简单的、单行的方法来获取表单的数据,就像以经典的纯HTML方式提交表单一样?
例如:
<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>
输出:
{
"foo": "1",
"bar": "xxx",
"this": "hi"
}
像这样的东西太简单了,因为它没有(正确地)包括文本表示、选择、单选按钮和复选框:
$("#form input").each(function () {
data[theFieldName] = theFieldValue;
});
发布于 2010-02-17 05:26:55
$('form').serialize() //this produces: "foo=1&bar=xxx&this=hi"
发布于 2014-06-03 18:32:16
基于jQuery.serializeArray
,返回键-值对。
var data = $('#form').serializeArray().reduce(function(obj, item) {
obj[item.name] = item.value;
return obj;
}, {});
发布于 2019-07-03 00:57:02
现在是2019年,有一个更好的方法可以做到这一点:
const form = document.querySelector('form');
const data = new URLSearchParams(new FormData(form).entries());
或者如果你想要一个普通的对象
const form = document.querySelector('form');
const data = Object.fromEntries(new FormData(form).entries());
但请注意,这不适用于重复的键,就像您从具有相同名称的多选和复制复选框中得到的那样。
https://stackoverflow.com/questions/2276463
复制相似问题