2016-07-22 153 views
-1

这应该是如此简单,但我显然错过了这里大量明显的东西。打破jQuery循环

下面的代码应该检查输入任何内容,或者如果它有一个类和运行功能error()。这似乎是真的假和同一时间,这是非常混乱!

任何想法我在循环中失踪?我本来期待return false;停止该功能,但事实并非如此。

function error() { 
    jQuery("#overlay,#required").fadeIn(); 
    jQuery(this).addClass("error"); 
} 

// Step 1 

jQuery("#step-1-next").click(function(){ 

    jQuery('#step-1 .b-left input[name=name], #step-1 .b-left input[name=email], #step-1 .b-left input[name=tel], #step-1 .b-left input[name=company]').each(function() { 

     if (jQuery(this).val() == '' || jQuery(this).hasClass("error")) { 

      error(); 
      return false; 

     } else { 

      // continue 

     } 

    }); 

}); 
+0

'我本来料想的回报是错误的;停止功能,但它不'你如何调试? –

+0

“似乎是真,假,同时”是什么意思?当你点击按钮时发生了什么,你预期会发生什么? – JJJ

+0

_'我原本以为回报是假的;停止功能'_......不!它停在那里,因为'error();'函数不知道'jQuery(this)'是什么。 – Jai

回答

0

这里是代码陌生的地方,你需要检查也许

if (jQuery(this).val() == '' || jQuery(this).hasClass("error")) { // true if element has a class error 

error(); // it already has class error, but method sets it again. If possible, reflow code 
.... 

还有一件事尚未:您可以检查是或否循环是否停在正确的时刻。只需添加跟踪console.log一行,如:

error(); 
console.log('Bad input with name ' + $(this).attr('name')); 
return false;