jQuery每个方法都没有返回值

$(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; }); }); 

这里msgOnError,msgHash和msgHash是我用来获取具有特定ID的每个文本框的消息的地图。不幸的是,每个方法都不返回false来取消提交表单。 我究竟做错了什么 ?? 我是jQuery的新手,谢谢

是的,这正是each工作方式。 因为它实际上是一个在每次迭代中调用你的匿名函数的循环,退出这些函数,也不会退出调用函数。 这里返回true和false,实际上对应于for循环的continuebreak ,repsectively。

你需要设置一个布尔标志,然后返回false(break),然后返回你的boolean标志的值。