jQuery每个方法都不返回值
这里的msgOnError、msgHash和msgHash是我用来为每个具有特定ID的文本框获取消息的映射jQuery每个方法都不返回值,jquery,methods,each,Jquery,Methods,Each,这里的msgOnError、msgHash和msgHash是我用来为每个具有特定ID的文本框获取消息的映射 不幸的是,每个方法都不会返回false来取消表单的提交。我做错了什么??我不熟悉jQuery,谢谢是的,这正是每个的工作原理。因为它实际上是在每次迭代中调用匿名函数的循环,所以退出这些函数也不会退出调用函数。这里返回true和false实际上分别对应于for循环的continue和break 您需要设置一个布尔标志,然后返回false(break),然后在每个之后返回布尔标志的值,这是真的
不幸的是,每个方法都不会返回false来取消表单的提交。我做错了什么??我不熟悉jQuery,谢谢是的,这正是每个的工作原理。因为它实际上是在每次迭代中调用匿名函数的循环,所以退出这些函数也不会退出调用函数。这里返回true和false实际上分别对应于for循环的
continue
和break
您需要设置一个布尔标志,然后返回false(break),然后在
每个之后返回布尔标志的值,这是真的。我只需在$('input[type=text],textarea')中设置一个布尔变量,就可以使用它。每个方法都可以使用,并且还删除了return关键字。稍后在$('#commentForm')中,我检查了布尔值并决定是否应该提交表单。效果很好。再次感谢大卫,我很高兴你的工作顺利。如果您对某个答复感到满意,您可以勾选该答复的“接受”按钮,将其标记为已接受的答复。这表明其他用户知道问题已经解决。
$(document).ready(function() {
$('#commentForm').submit(function(){
return $('input[type=text], textarea').each(function(index){
if($(this).attr('value') == ""){
alert(msgHash[$(this).attr('id')]);
return false;
}else{
if(!$(this).attr('value').match(validateHash[$(this).attr('id')])){
//Do nothing
alert(msgOnError[$(this).attr('id')]);
return false;
}
}
});
return true;
});
});