javascript - 如何用javascript提取HTML表单数据?

标签 javascript forms

我需要使用 javascript(+Mootools) 从 HTML 表单中提取数据,采用与发布表单时 PHP 会看到的相同类型的嵌套对象格式。

我只是不擅长谷歌搜索,还是真的没有本地或众所周知的方法来实现这一目标?我看到很多其他人在不同的论坛上问过同样的问题,但到目前为止,所有人都接受了 jQuery serializeArray 等解决方案。

我用 jsFiddle 尝试了 serializeArray http://jsfiddle.net/7quxe/结果令人失望。

我之前自己为此编写了一个脚本并且它运行良好,除了当表单具有重叠的混合键类型字段(<input name="foo[bar]" value="1"> and <input name="foo[]" value="2")时出现一些问题。我已经开始研究更好的版本但是因为我发现自己一次又一次地重新开始,我心想:有很多很棒的 js 库,旨在解决许多基本的日常问题。难道真的想要从格式正确的对象中的表单中提取数据不是吗?这么普遍?

这是我正在尝试的示例:

<form method="post" action="/">
    <input name="test" value="test">
    <input name="nested[a]" value="a">
    <input name="nested[b]" value="b">
    <input name="nested[c]" value="c">
    <input name="arraytest[]" value="foo">
    <input name="arraytest[]" value="foo">
    <input name="arraytest[]" value="foo">
</form>

这是 PHP 的处理方式:

$_POST = array(
    'test' => 'test',
    'nested' => array(
        'a' => 'a',
        'b' => 'b',
        'c' => 'c',
    ),
    'arraytest' => array(
        0 => 'foo1',
        1 => 'foo2',
        2 => 'foo3'
    )
)

这就是我想在 js 中得到的:

{
    test : 'test',
    nested : {
        a : 'a',
        b : 'b',
        c : 'c'
    },
    arraytest : {       // This could also be an array ['foo1','foo2','foo3']
        0 : 'foo1',
        1 : 'foo2',
        2 : 'foo3'
    }
}

最佳答案

FormData data= new FormData();

数据由你所有的表单数据组成 如果你特别想要那么你需要使用

data.get("fieldName");

关于javascript - 如何用javascript提取HTML表单数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13415890/

相关文章:

javascript - 从 Greasemonkey 脚本注入(inject) document.write 调用不会导致任何加载

javascript - Onclick 显示在输入字段中填充了目标值并进行正则表达式验证的 div

javascript - AngularJS在不同型号上绑定(bind)2个单选按钮组

javascript - 检查 JS 变量是否为 null 和 true

javascript - 替换 Angular 的 forEach() 中的对象

javascript - 尝试在 React 中构建通用表单组件而不使用 eval()

javascript - 如何使用 GET 方法通过 XMLHttpRequest 传递 FormData

javascript - 正确的单词重定向到相应的页面

javascript - 无法使用 Azure DevOps Rest API 上传图像(二进制)

php - 在 mysql 查询中使用 PHP 表单