JQuery, используя!сказать "не выбран" - PullRequest
1 голос
/ 18 мая 2011

Можно ли сделать что-то подобное, чтобы проверить, не отключена ли форма радио

if !($(this).find("input:checked")) {}

Какой будет правильный синтаксис?

Ответы [ 5 ]

8 голосов
/ 18 мая 2011

Попробуйте это:

$(this).find("input:not(:checked)")
1 голос
/ 18 мая 2011

Вы можете использовать .is для логического теста

if (!$(this).find('input').is(':checked')) { }
1 голос
/ 18 мая 2011

Попробуйте вместо этого bc .find возвращает массив элементов DOM:

if ($(this).find("input:checked").length == 0) {}
0 голосов
/ 18 мая 2011

Я предполагаю, что вы ищете родительский элемент (например, форму), чтобы увидеть, можете ли вы найти флажки-потомки, которые отмечены.

Вы хотите что-то вроде этого:

if (!$(this).find('input:radio:checked').length) {

Условие выполняется, если нет проверенных элементов радиовхода потомка.

0 голосов
/ 18 мая 2011

Прежде всего, вам нужно, чтобы ! внутри условной проверки:

if (!$(this).find("input:checked")) {}

Во-вторых, метод .find возвращает объект jQuery, поэтому дажеесли он ничего не найдет, он все равно будет правдивым.

Возможно, вы захотите проверить длину объекта jQuery:

if (!$(this).find("input:checked").length) {}

Если элементов нет, то и т. д.и т. д.

...