我正在尝试在所需输入无效时退出函数...但遇到问题。请参阅下面的代码。为什么return
不起作用?我也试过return false
和break
而没有运气。
代码:
function SendTo(id){
///////// VALIDATE & CLEAR INPUTS ////////////
var elems = $('form').find('input');
var arr = jQuery.makeArray(elems);
jQuery.each(arr, function() {
var input = $(this);
//REQUIRED
if (input.hasClass('required')) {
if (input.val() == '' || input.val() == input.attr('placeholder')) {
input.addClass('fail');
$('#messages .error').text('The above fields are required.', function() {
$(this).fadeIn('slow')
});
return;
}
}
//CLEAR
if (input.val() == input.attr('placeholder')) {
input.val('[EMPTY]');
}
});
}
修改
我使用以下代码:
///////// VALIDATE & CLEAR INPUTS ////////////
var allGood = true;
$('form input').each(function() {
var input = $(this);
//REQUIRED
if (input.hasClass('required')) {
if (input.val() == '' || input.val() == input.attr('placeholder')) {
input.addClass('fail');
$('#messages .error').text('The above fields are required.', function() {
$(this).fadeIn('slow')
});
allGood = false;
}
}
});
return allGood;
答案 0 :(得分:2)
我认为这是因为你正在做jQuery.each。
退出那将只是去下一个。但是,我非常确定return false;
,就像Minum说break
,而不是conintue
来自网站:
我们可以通过使回调函数返回false来在特定迭代中中断$ .each()循环。返回非false与for循环中的continue语句相同;它将立即跳到下一次迭代。 http://api.jquery.com/jQuery.each/
答案 1 :(得分:1)
function a(){
$.each(b, c() {
return;//return from each but NOT from function a)
}
return;//returns from function a
}