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

jquery each loop check if at least one field has been filled

本文关键字:一个 字段 循环 检查 是否 jquery      更新时间:2023-09-26

假设我有一个这样的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 的输入已被填充(在同一循环中)?谢谢

你可以做:

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

此处还将涵盖必填字段的检查:

工作示例请参阅我的小提琴: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;
    }
}

干杯
佛瑞恩