我怎么能得到所有的元素和值从一个表单与jquery混合类型

How can I get all elements and values from a form in with jquery with mixed types

本文关键字:一个 表单 类型 混合 jquery 怎么能 元素      更新时间:2023-09-26

我知道如何获得所有表单元素与他们的值在一个单一的数组与jquery的"。每个"的方法。如果我警告:input[type:text]元素的值,我可以看到它们——但是如果我想警告这个数组中任何复选框的值,它总是显示"on"。

在某种程度上有可能有表单的内容元素:1)在一个数组中,+ 2)它显示我的文本字段的值和复选框的选中状态?

我希望能够迭代这个表单元素数组和验证数据,但我不能确定这个混合数组中的复选框的选中状态。

希望这不是太混乱关于

你看了。serializearray()吗?

跳过jQuery,使用DOM。表单有一个方便的elements属性,它包含表单中的所有表单控件(输入、选择、按钮等)。使用每个元素的typetagName属性来区分它们,并使用复选框和单选按钮的布尔checked属性来查看它们是否被选中。这些东西在所有主流的可脚本浏览器中都能完美地工作。

小例子:

var els = form.elements;
for (var i = 0, len = els.length; i < len; ++i) {
    if (els[i].tagName == "INPUT") {
        if (els[i].type == "checkbox" || els[i].type == "radio") {
            alert("Checked: " + els[i].checked);
        } else {
            alert("Value: " + els[i].value);
        }
    }
}

看一下这是如何完成的:

http://jsfiddle.net/VNPsj/

您将能够看到每个输入文本和复选框的值。我把它们放在提醒中,但是你可以把它们赋值给变量或者你想要的任何东西。神奇的是,jQuery选择器(我使用的参考在这里:http://api.jquery.com/multiple-attribute-selector/)允许您抓取表单的选定部分。

要获取复选框的"值",您需要检查$(this).attr('checked')方法的值,其中这是您正在迭代的当前复选框元素。

尝试使用。checked代替。value。这将给你一个真/假状态。

当您遍历列表时,检查元素。键入以确定如何处理它。例如

if (element.type == "checkbox") {
  //use element.checked
} else {
  //use element.value
}

如果您只是想从表单中获取数据,那么就像Rusty提到的那样使用. serializearray。但是,如果您试图为表单验证这样做,那么您最好实现jQuery Validate插件。