2009-07-06 4 views
35

Как проверить, скрыт ли какой-то конкретный элемент от пользователя? В моем коде, при определенных условиях, этот код будет называться:JQuery: проверьте, скрыт ли элемент от пользователя

$("#VersionSelectField").hide('fast'); 

Так что я должен убедиться, что если $("#VersionSelectField") скрыта, то я не должен был бы проверить значение внутри него, когда я отправить форму (Для этой цели я использую JQuery Validate library).

Любые идеи?

ответ

74
$("#VersionSelectField").is(':hidden'); 
+0

Это просто проверяет, является ли это скрытым вводом. – Rob

+7

@Rob - Это фактически проверяет, не видимо ли пользователю. http://docs.jquery.com/Selectors/hidden –

+0

Я не знал об этом селекторе. Спасибо, что принесли мне это. – Rob

0

Try $("#versionselectfield[display='none']").length > 0.

+0

Не знаете, почему это было отклонено. Кто-нибудь должен объяснить, почему проверка атрибута отображения является неправильным ответом здесь? – Rob

+1

Я не проголосовал за вас, но тег был бы style = "display: none", поэтому вы не выбрали селектор – redsquare

+0

Rob - вы всегда можете отметить вещи до мода, если они вас подозревают. – redsquare

8

Это работает для меня:

$("#VersionSelectField").css("display") == "none"; 
0

Вы можете использовать дозвон шкурой() метод. Например:

$("#VersionSelectField").hide('fast', function() { 
    GlobalVersionSelectFieldHidden = true; 
}); 

Выше только один способ использовать это, в основном обратный вызов срабатывает только когда анимация закончена (т.е. полностью скрыт). Конечно, загрязнение глобальной переменной видимости очень непослушное, но просто быстрый пример.

В качестве альтернативы, проверка того, является ли отображение «нет», как и предложение Mark, также работает, поскольку эффект JQ полностью скроет вещи, используя это свойство css.

Смежные вопросы