使用javascript返回表单中每个元素的值

时间:2011-07-11 20:28:25

标签: javascript

有没有办法只使用javascript来做到这一点?谢谢!

4 个答案:

答案 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>