在jQuery中检查所有字段的空白

时间:2011-12-03 12:41:06

标签: javascript jquery

我有四个字段,如果至少有一个字段有值,我的函数返回true,如果所有字段都没有值返回false,我该怎么做?

我的尝试:(这不会像我想的那样工作)

function required_eachinput(){
    result = true;
    $('.myclass').each(function(){
        var $val = $(this).val();
        var ok = $val.each(function(){});
        alert(ok);
        if(!$val){
            $(this).css("background", "#ffc4c4");
            result = false;
        }
        $(this).keyup(function () {
            $(this).closest('form').find('input').css("background", "#FFFFEC");
        })
    });
        return result;
}

4 个答案:

答案 0 :(得分:4)

我的建议是:

function required_eachinput(){
    var result = '';
    $('.myclass').each(function(){
        result += $(this).val();
    });
    return result != '';
}

它的作用基本上是连接所有4个字段的所有值(可以是任意数量的字段)。如果结果不是空字符串,则表示至少有一个字段具有值。否则,一切都是空的。

答案 1 :(得分:4)

您可以过滤掉空元素并检查是否有任何遗留:http://jsfiddle.net/bbFA6/1/

function required_eachinput() {
    return $(".myclass").filter(function() {
        return $(this).val() !== ""; // only keep non-empty elements
    }).length > 0; // check whether you have any non-empty elements left
}

答案 2 :(得分:1)

不破坏你的代码:

function required_eachinput(){
    result = false; // Start with false
    $('.myclass').each(function(){
        var $val = $(this).val();
        if($val){
            result = true; // If any is not empty return true
        } else {
            $(this).css("background", "#ffc4c4");
        }
        $(this).keyup(function () {
            $(this).closest('form').find('input').css("background", "#FFFFEC");
        });
    });
    return result;
}

答案 3 :(得分:1)

你可以使用平原JAVASCRIPT吗?

function required_eachinput(){
    var inputs = document.querySelectorAll('.myclass');
    for(var i = 0, len = inputs.length; i < len; i++){
        if(inputs[i].value !== ''){
            return true;
        }
        return false;
    }
}

Demo