jquery每个循环检查是否至少填充了一个字段

时间:2013-11-07 16:08:33

标签: javascript jquery

假设我有一个像这样的HTML结构:

<input type="text" name="input_1" class="required" value="" />
<input type="text" name="input_2" class="required" value="" />
<input type="text" name="input_3" class="required one" value="" />
<input type="text" name="input_4" class="required one" value="" />
<input type="text" name="input_5" class="required" value="" />

正如您所看到的,上面的每个文本字段都有类required,但其中有两个也有类one。我想做的是遍历这些文本字段并检查它们是否为空,但对于具有类one的那些文本字段,至少需要其中一个(不是同时)。如果我使用类required迭代输入,如何检查至少有一个类one的输入是否已填充(在同一循环中)?谢谢

2 个答案:

答案 0 :(得分:3)

你可以这样做:

var oneIsFilled = false;
$(":text.required").each(function() {
    if ($(this).hasClass("one") {
        if (this.value.length > 0)
            oneIsFilled = true;
    }
});

答案 1 :(得分:0)

这里的内容还包括检查必填字段:

工作示例见我的小提琴:http://jsfiddle.net/Florian_Loch/A3C5C/1/

function click() {
    var bool = check();

    if (bool) {
        alert("OK!");
    } else {
        alert("NOOOO!");
    }
}

function check() {
    var one = false;
    var res = true;

    $(".required").each(function () {
        if ($(this).hasClass("one") && this.value.length > 0) {
            one = true;   
        }

        if ($(this).hasClass("required") && $(this).hasClass("one") == false && this.value.length == 0) {
            res = false;
            return; //We can leave here already
        }        
    });

    if (!res) {
        return false;
    }
    else {
        return one;
    }
}

干杯,
弗洛里安