Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Выяснить, есть ли в наборе хоть один чекнутый checkbox (https://javascript.ru/forum/jquery/28681-vyyasnit-est-li-v-nabore-khot-odin-cheknutyjj-checkbox.html)

SkaN 29.05.2012 17:11

Выяснить, есть ли в наборе хоть один чекнутый checkbox
 
Есть набор чекбоксов с классом checked. При изменении хоть одного из них нужно выяснить, остались ли еще чекнутые. Я придумал ну очень извращенный метод:
$("input.checked, input#all").each(function(){
			switch ($(this).is(":checked"))
			{
				case true:
					$("div#actions").show();
					break;
				case false:
					$("div#actions").hide();
					break;
			}
		});

Он работает довольно странно: есть у меня сейчас два чекбокса, при нажатии на первый case true срабатывает, но div#actions не показывается, при нажатии на второй чекбокс - все нормально. Есть у кого-нибудь еще методы, как узнать, есть ли хоть один чекнутый чекбокс в наборе?

tadjik1 29.05.2012 17:24

function checkCheckbox() { $("#actions").[$('#all input:checked').length == 1 ? 'hide' : 'show'](); }
$('input:checkbox').click(checkCheckbox);

SkaN 29.05.2012 18:13

Если длина объекта равна 1, значит он пустой?

SkaN 29.05.2012 19:18

Все, я прочитал про length, спасибо ))

tadjik1 29.05.2012 20:30

=) ну 1, это если только ваш чекбокс и выбран, вроде такое условие было

SkaN 30.05.2012 15:54

Цитата:

Сообщение от tadjik1 (Сообщение 177398)
=) ну 1, это если только ваш чекбокс и выбран, вроде такое условие было

не совсем, нужно было проверить, есть ли вообще чекнутые чекбоксы, и, если нет, то спрятать #actions. Но все равно спасибо, я и не додумался сам про length ))


Часовой пояс GMT +3, время: 22:18.