2011-04-05 115 views
4

我有一個簡單的jQuery循環,通過我的表單會和如何在此jquery循環之外訪問此變量?

  1. 看是否有沒空字段。
  2. 如果有任何空,與 '空' 類標記它們和
  3. 然後創建一個 '錯誤' 變量

基本上是:

// check all the inputs have a value... 
$('input').each(function() { 

    if($(this).val() == '') { 

     $(this).addClass('empty'); 
     var error = 1; 

    } 

}); 

這個工作的魅力。然而,隨着我的代碼繼續,我似乎無法訪問該'錯誤'變量...好像它被鎖定在每個循環內。在.each()循環後面緊跟着下面的代碼,即使我知道條件1和條件2正在工作,我也不會觸發my_error_function()。

if(error == 1) { 

    my_error_function(); 

} else { 

    my_non_error_function(); 

} 

如何訪問此變量,以便我可以在代碼的其他位置使用其結果?

+2

在循環之外聲明它。 – BoltClock 2011-04-05 08:44:41

回答

12

定義你的函數/循環

var error = 0; 
$('input').each(function() { 

    if($(this).val() == '') { 

     $(this).addClass('empty'); 
     error = 1; 

    } 

}); 
+0

它工作!非常感謝。 – willdanceforfun 2011-04-05 08:46:58

+0

雅:)謝謝!我不得不等待一段時間 – willdanceforfun 2011-04-05 09:16:08

2

定義範圍之外的變量或指定給一個全局變量之外的錯誤變量。名稱空間變量也可以工作(例如,foo.bar.error = 1)

$('input').each(function() { 
    if($(this).val() == '') { 
    $(this).addClass('empty'); 
    window.error = 1; 
    } 
}); 

... 

alert(error);