0

假设我有一个这样的 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。我想要做的是遍历这些文本字段并检查它们是否不为空,但对于具有 class 的那些,one至少需要其中一个(而不是同时)。如果我使用 class 遍历输入required,如何检查是否至少有一个带有 class 的输入one已被填充(在同一个循环中)?谢谢

4

2 回答 2

3

你可以做:

var oneIsFilled = false;
$(":text.required").each(function() {
    if ($(this).hasClass("one") {
        if (this.value.length > 0)
            oneIsFilled = true;
    }
});
于 2013-11-07T16:13:51.810 回答
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;
    }
}

干杯,
弗洛里安

于 2013-11-07T16:34:54.473 回答