有没有办法只使用javascript来做到这一点?谢谢!
答案 0 :(得分:3)
基本JavaScript ...
var arr = document.forms[0].elements;
for (var i = 0; i < arr.length; i++) {
var el = arr[i];
// do something with it.
console.log(el.value) // or similar
}
答案 1 :(得分:1)
您可以查看jQuery.serialize()
它返回标准的URL编码字符串。然而,好处是它封装了获取所有不同类型的表单元素的值。
答案 2 :(得分:0)
看看this。这些人构建的东西只使用纯JS并序列化表单。
答案 3 :(得分:0)
此函数返回关联数组中的所有表单元素。它还返回所选多个输入元素的所有值。
function getFormVals(form) {
var values = [];
for(var i = 0, len = form.elements.length; i < len; i++) {
var input = form.elements[i];
switch (input.type.toLowerCase()) {
case "checkbox":
values[input.name] = values[input.name] || [];
if (input.checked) {
values[input.name].push(input.value);
}
break;
case "radio":
values[input.name] = values[input.name] || "";
if (input.checked) {
values[input.name] = input.value;
}
break;
case "select-multiple":
values[input.name] = values[input.name] || [];
for (var i = 0, len = input.length; i < len; i++) {
if (input[i].selected) {
values[input.name].push(input[i].value);
}
}
break;
default:
values[input.name] = input.value;
break;
}
}
return values;
}
用法可能是:
<form onsubmit="var vals = getFormVals(this); alert(vals['myinput']);" >
<input type="checkbox" name="myinput" value="ckbx1" />
<input type="checkbox" name="myinput" value="ckbx2" />
<input type="submit" />
</form>