我有一个问题,我无法想出如何解决这个问题。
我有一个巨大的形式,我有汽车会议的“飞行员”。在我的字段中,我需要检测当前字段是否具有长度> = 2 。
如果其中一个是真的,我需要显示一个特殊的警告框。
我实际上在onChange函数上使用了每个(函数)。
问题是如果第一个值返回true而第二个返回false,我的警告将隐藏。
我想知道每个()函数中是否存在某种“中断”或“继续”。
我的代码
function check_dizaine(){
$('.check_dizaine').each(function()
{
if($(this).val().length >= 2)
{
$('#attention_pilotes').show();
$(this).css('border', '1px solid #daa421');
$(this).css('background','#f8ecc9');
}
else
{
$(this).css('border', '1px solid #a1a1a1');
$(this).css('background','#ffffff');
$('#attention_pilotes').hide();
}
});
}
有任何线索吗?
答案 0 :(得分:0)
您可以通过从回调函数返回.each()
来“中断”false
循环。返回true
或仅使用return;
就像是“继续”。
$('.check_dizaine').each(function() {
if ($(this).val().length >= 2) {
$('#attention_pilotes').show();
$(this).css('border', '1px solid #daa421');
$(this).css('background','#f8ecc9');
return false; // <--- *** Return false here ***
} else {
$(this).css('border', '1px solid #a1a1a1');
$(this).css('background','#ffffff');
$('#attention_pilotes').hide();
}
});
但我认为做这样的事情会更好:
var showWarning = false;
$('.check_dizaine').each(function() {
if ($(this).val().length >= 2) {
showWarning = true;
return false;
}
});
if (showWarning) {
$('#attention_pilotes').show();
$(this).css('border', '1px solid #daa421');
$(this).css('background','#f8ecc9');
} else {
$(this).css('border', '1px solid #a1a1a1');
$(this).css('background','#ffffff');
$('#attention_pilotes').hide();
}
这样,你最多只能执行一次else-block中的代码。对于循环的每次迭代,都不会出现一次。