2010-04-27 49 views
0

以下if語句。jquery檢查控件是否爲空並顯示!=「none」,爲什麼不起作用?

emptyFields = false; 
    $(".ClassNanme").each(function() { 
     if(($.trim($(this).val()) == "") && ($(this).css('display') != 'none') { 
     emptyFields = true; 
    return false; // break out of the each-loop 
     } 
    }); 

但不起作用,我不知道如何檢查CSS屬性顯示是否設置爲沒有jQuery的。

這個if語句應該在其中一個對象爲空或者其css屬性顯示爲未設置爲none時進行選擇。

檢查值是否爲空作品,我所堅持的是檢查對象是否隱藏(或顯示:無)。

謝謝。

塞薩爾。

回答

5
emptyFields = false; 
    $(".ClassName").each(function() { 
     if($.trim($(this).val()) === "" && $(this).is(":hidden")) { 
     emptyFields = true; 
     return false; // break out of the each-loop 
     } 
    }); 

使用is(":hidden")是,在我看來,語法更清潔和更容易比檢查實際CSS值讀取。試試看。

另外,與空字符串比較時使用===(類型相等)。

編輯:Gah,將「可見」更改爲「隱藏」 - 我的錯誤。

+0

+ 1爲更完整的答案,並接受的答案。 – Amra 2010-04-27 14:22:00

1

您正在尋找jQuery's visiblity selectors

例如:

if ($(this).is(':hidden')) 
+0

+1因爲這麼快,:-) – Amra 2010-04-27 14:21:09