首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用JavaScript/jQuery获取表单数据?

如何使用JavaScript/jQuery获取表单数据?
EN

Stack Overflow用户
提问于 2010-02-17 05:24:46
回答 25查看 1M关注 0票数 487

有没有一种简单的、单行的方法来获取表单的数据,就像以经典的纯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;
});
EN

回答 25

Stack Overflow用户

回答已采纳

发布于 2010-02-17 05:26:55

$('form').serialize() //this produces: "foo=1&bar=xxx&this=hi"

demo

票数 500
EN

Stack Overflow用户

发布于 2014-06-03 18:32:16

基于jQuery.serializeArray,返回键-值对。

var data = $('#form').serializeArray().reduce(function(obj, item) {
    obj[item.name] = item.value;
    return obj;
}, {});
票数 226
EN

Stack Overflow用户

发布于 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());

但请注意,这不适用于重复的键,就像您从具有相同名称的多选和复制复选框中得到的那样。

票数 82
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2276463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档