jQuery проверьте, установлены ли какие-либо флажки или нет


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

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

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

7 107

7 ответов:

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

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

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

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

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

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

где:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

         //Do something.

});