Как проверить несколько селекторов через JQ? - PullRequest
1 голос
/ 12 апреля 2019

Мне нужна реакция, когда отмечены все три флажка, но не тогда, когда не установлен даже один.

Пример:

"# cBox1, # cBox2, # cBox3 проверены =Consol.log ('флажок'); "

" Просто # cBox1, проверено # cBox3 = Consol.log ('НЕ проверено'); "

Я уже пробовал следующеебез правильного результата: if($('#cBox01, #cBox02, #cBox03')

<div id="cBoxes">
  <form>
    <input id="cBox01" class="cBox" type="checkbox" name="cBox01" value="cBox01"> checkbox 1<br>
    <input id="cBox02" class="cBox" type="checkbox" name="cBox02" value="cBox02"> checkbox 2<br>
    <input id="cBox03" class="cBox" type="checkbox" name="cBox03" value="cBox03"> checkbox 3<br>
  </form>
</div>
$('.cBox').change( function(){
  if($('#cBox01' && '#cBox02' && '#cBox03').is(':checked')){
    console.log('checked');
  }else {
    console.log('NOT checked');
  }
});

Я получил правильный результат после проверки # cBox3, но только для этого, а не для всех.

Большое спасибо Taplar, это работает для меня:

$('.cBox').change( function(){
  if($('.cBox:checked').length === 3){
    console.log('checked');
  }else {
    console.log('NOT checked');
  }
});

1 Ответ

0 голосов
/ 12 апреля 2019

Вы можете поставить проверенный на каждом и проверить длину

$('#cBox01:checked, #cBox02:checked, #cBox03:checked').length === 3

Или вы можете отфильтровать и проверить длину

$('#cBox01, #cBox02, #cBox03').filter(':checked').length === 3

Или вы можете проверить обратное

!$('#cBox01, #cBox02, #cBox03').is(':not(:checked)')

В вашем случае, поскольку все они имеют общий класс, вы можете уменьшить его до

!$('.cBox').is(':not(:checked)')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...