Jquery проверить, если элемент управления пуст и отображать! = "None", почему не работает? - PullRequest
0 голосов
/ 27 апреля 2010

Следующий оператор if.

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

Но не работает, я не знаю, как проверить, установлено ли для свойства css значение none с помощью jquery.

Этот оператор if должен выбирать, когда один из объектов либо пуст, либо для его свойства css не установлено значение none.

Проверка, является ли значение пустым, работает, но я застрял с проверкой, скрыт ли объект (или отображение: нет).

Спасибо.

Сезар.

Ответы [ 2 ]

5 голосов
/ 27 апреля 2010
   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. Дайте этому попытку.

Также используйте === (равенство типов) при сравнении с пустой строкой.

Редактировать : Гах, изменив «видимый» на «скрытый» - моя ошибка.

1 голос
/ 27 апреля 2010

Вы ищете селекторы видимости jQuery .

Например:

if ($(this).is(':hidden'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...