我在将所有表单数组值获取到 JS 数组时遇到问题,其中一个值工作正常:
var el = document.getElementsByName('p[]');
for (var i = 0, j = el.length; i < j; i++) {
var elem = el[i];
alert(elem.value);
}
但是当我尝试添加更多时它不起作用:
var el = document.getElementsByName('p[]', 'k[]', 'ka[]', 's[]');
for (var i = 0, j = el.length; i < j; i++) {
var elem = el[i];
alert(elem.value);
$.post("test.php", { 'p': [elem.value] });
}
这是我的表单:表单是动态的(通过单击按钮,我可以使用这 4 个字段添加新行:
<form name="form">
<input type="text" name="p[]" id=name" />
<input type="text" name="k[]" id="quant" size="3" />
<input type="text" name="ka[]" id="price" size="10" />
<input type="text" name="s[]" id="sum" size="10" disabled="disabled"/><br />
</form>
最佳答案
document.getElementsByName
不会像您尝试使用它的方式神奇地接受多个参数。您需要调用gEBN
多次,每个名称一次(another answer 有更详细的描述)。
或者,只需循环 <form>
的输入:
var form = document.getElementsByName('form')[0];
var inputs = form.getElementsByTagName('input');
for (var i = 0, j = inputs.length; i < j; i++) {
// snip
}
关于javascript - 获取所有表单数组到JS数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11421769/