2016-07-22 194 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;