JQuery посмотреть, если какие-либо или нет флажки установлены - PullRequest
114 голосов
/ 03 ноября 2010

Я знаю, как посмотреть, установлен ли отдельный флажок или нет.

Но у меня возникли проблемы со следующим - учитывая идентификатор формы, мне нужно посмотреть, установлены ли какие-либо флажки (т. Е. 1 или более), и мне нужно посмотреть, если нет выбрано. В основном мне нужны две отдельные функции, которые отвечают на эти два вопроса. Помощь будет оценена. Спасибо!

На самом деле, мне просто нужна функция, чтобы сообщить мне, если выбрано none . Знание этого ответило бы на другой вопрос.

Ответы [ 7 ]

224 голосов
/ 03 ноября 2010

Вы можете использовать что-то вроде этого

if ($("#formID input:checkbox:checked").length > 0)
{
    // any one is checked
}
else
{
   // none is checked
}
26 голосов
/ 14 марта 2013

JQuery .is проверит все указанные элементы и вернет true, если хотя бы один из них соответствует селектору:

if ($(":checkbox[name='choices']", form).is(":checked"))
{
    // one or more checked
}
else
{
    // nothing checked
}
7 голосов
/ 03 ноября 2010

Вы можете сделать это:

  if ($('#form_id :checkbox:checked').length > 0){
    // one or more checkboxes are checked
  }
  else{
   // no checkboxes are checked
  }

Где:

  • :checkbox Селектор фильтров устанавливает все флажки.
  • :checked установит флажки
  • length даст количество проверенных там
4 голосов
/ 01 сентября 2016

Без использования 'length' вы можете сделать это так:

if ($('input[type=checkbox]').is(":checked")) {
      //any one is checked
}
else {
//none is checked
}
4 голосов
/ 12 июня 2014

Это то, что я использовал для проверки, изменились ли какие-либо флажки в списке флажков:

$('input[type="checkbox"]').change(function(){ 

        var itemName = $('select option:selected').text();  

         //Do something.

});     
3 голосов
/ 25 августа 2013

Ответ Рахула лучше всего подходит для вашего вопроса. В любом случае, если у вас есть группа флажков, которые нужно отметить, а не все флажки в вашей форме, вы можете пойти на это.

Поставьте имя класса для всех флажков, которые вы хотите проверить, например, имя класса test_check, и теперь вы можете проверить, отмечен ли какой-либо из флажков, принадлежащих группе:

$("#formID .test_check:checked").length > 0

Если он возвращает true, предположим, что один или несколько флажков отмечены с именем класса test_check и ни один не отмечен, если возвращается false.

Надеюсь, это кому-нибудь поможет. Спасибо:) -

3 голосов
/ 03 ноября 2010

Вы можете сделать простой возврат .length здесь:

function areAnyChecked(formID) {
  return !!$('#'+formID+' input[type=checkbox]:checked').length;
}

Это ищет флажки в данной форме, определяет, есть ли они :checked, и возвращает true, если они есть (поскольку длина будет равна 0 в противном случае). Чтобы было понятнее, вот не преобразованная в булеву версия:

function howManyAreChecked(formID) {
  return $('#'+formID+' input[type=checkbox]:checked').length;
}

Это вернет счетчик того, сколько было проверено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...