我有这样的陈述:
$("#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警报。
我该怎么做?
答案 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;
}
});