打破IF声明 - 退出;

时间:2015-03-04 14:32:34

标签: jquery if-statement

我有这样的陈述:

$("#submit").click(function(e) {
    if (!confirm('Continue ?')) { return false; }

    if (!$("#all").is(':checked')) {
        $(".A").each(function() {
            if($(this).val() == '0') { alert ('A - This Value Must Be Set'); return false; }
        });

        $(".B").each(function() {
            if($(this).val() == '0') { alert ('B - This Value Must Also Be Set'); return false; }
        });

        $(".C").each(function() {
            if ($(this).val().length < 1) { alert ('C - This Must Be Set'); return false; } 
            if (!$.isNumeric(this.value)) { alert ('C - Only Numeric Values'); return false; }
        });
    }
});

如果有任何课程&#39; A&#39;值为0然后我收到警报:

  

A - 必须设置此值

这很好但是我接受了班级的检查&#39; B&#39; &安培;班级&#39; C&#39;校验。 我想要的是停止检查A,B和B的所有额外费用。发送C警报。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

我想使用if condition else来做到这一点。试试这样的事情,

if (!$("#all").is(':checked')) {
    var foundA = false;
    var foundB = false;
    var foundC = false;
    $(".A, .B, .C").each(function() {
        var self = $(this);
        if($(this).val() == '0') {
          if (self.prop('class') === 'A' && foundA === false){
            foundA = true;
            alert ('A - This Value Must Be Set');                
          } else if (self.prop('class') === 'B' && foundB === false){
            foundB = true;
            alert ('B - This Value Must Be Set');
          } else if (self.prop('class') === 'c' && foundC === false){
            foundC = true;
            alert ('C - This Value Must Be Set');
          }
        }
    });
}

答案 1 :(得分:0)

尝试在每个范围之外声明一个变量,并在设置时退出该函数:

$("#submit").click(function(e) {
    if (!confirm('Continue ?')) { return false; }

        var stopFunction = false;
        if (!$("#all").is(':checked')) {
            $(".A").each(function() {
                if($(this).val() == '0') { alert ('A - This Value Must Be Set'); stopFunction = true; return false; }
            });

            if(stopFunction)
                return false;

            $(".B").each(function() {
                if($(this).val() == '0') { alert ('B - This Value Must Also Be Set'); stopFunction = true; return false; }
            });

            if(stopFunction)
                return false;

            $(".C").each(function() {
                if ($(this).val().length < 1) { alert ('C - This Must Be Set'); return false; } 
                if (!$.isNumeric(this.value)) { alert ('C - Only Numeric Values'); stopFunction = true; return false; }
            });

            if(stopFunction)
                return false;
        }
});