我需要使用 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/