每个()有多个ID或类?

时间:2013-10-29 14:29:26

标签: javascript jquery forms validation

我有一个包含15个字段的表单(包括输入类型,选择框,文本区域)。

我可以通过普通方式编写一个函数来验证这个表单,但这不是智能编码。在这种情况下我需要使用每个。

这就是我的想法:

$("#id1, #id2, #id3... #id15").each(function(){
    if ($(this).val == "") {
        $(this).closest("#error").css("display", "block");
    }
})

如果这个验证是基于类的还是基于id的,我会采用正确的方法吗?我是否在正确的上下文中使用each()?

3 个答案:

答案 0 :(得分:7)

您可以在此处使用:input选择器选择表单中的所有输入元素,如:

$("#formID :input").each(function () {
    if ($(this).val() == "") {
        $(this).closest("#error").css("display", "block");
    }
});

或者可以将特定类添加到您要验证的所有输入中,如validate,并执行以下操作:

$(".validate").each(function () {
    if ($(this).val() == "") {
        $(this).closest("#error").css("display", "block");
    }
});

文档: http://api.jquery.com/input-selector/

说明:选择所有输入,textarea,select和按钮元素。

答案 1 :(得分:2)

或者在表单

中包含id属性的任何标记
$('form *[id]')

或名称attr会更好

$('form *[name]')

答案 2 :(得分:-1)

如果您有多个输入,选择和表单元素,请向每个元素添加类似“input-group”的类,然后迭代该组。

$("form .input-group").each(function(){
    if ($(this).val == "") {
        $(this).closest("#error").css("display", "block");
    }
})