JQuery, если выбраны или нет флажки

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

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

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

Ответ 1

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

if ($("#formID input:checkbox:checked").length > 0)
{
    // any one is checked
}
else
{
   // none is checked
}

Ответ 2

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

if ($(":checkbox[name='choices']", form).is(":checked"))
{
    // one or more checked
}
else
{
    // nothing checked
}

Ответ 3

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

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

Где:

  • :checkbox фильтр выбирает все флажки.
  • :checked выберет отмеченные флажки
  • length даст количество проверенных там

Ответ 4

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

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

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

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

Это вернет количество проверок.

Ответ 5

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

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

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

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

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

Ответ 6

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

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

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

         //Do something.

});     

Ответ 7

Без использования 'length' вы можете сделать это следующим образом:

if ($('input[type=checkbox]').is(":checked")) {
      //any one is checked
}
else {
//none is checked
}