Несколько флажков, установленных в одном классе

#javascript #jquery

#javascript #jquery

Вопрос:

У меня есть несколько флажков, которые добавлены с помощью AJAX. Я пытаюсь вызвать click , если флажок не установлен, но это работает не для всех флажков.

 if ($(".variable_manage_stock").prop('checked') == false) {
  $('.variable_manage_stock').trigger('click');
}  
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="checkbox" class="variable_manage_stock" name="variable_manage_stock[0]">
<input type="checkbox" class="variable_manage_stock" name="variable_manage_stock[1]">
<input type="checkbox" class="variable_manage_stock" name="variable_manage_stock[2]">
<input type="checkbox" class="variable_manage_stock" name="variable_manage_stock[3]">  

Комментарии:

1. чего вы ожидаете от нажатия на флажок?

2. Что означает попытка вызвать щелчок, если флажок не установлен ? Что вы на самом деле пытаетесь здесь сделать, потому что это не имеет большого смысла

3. похоже, что ни один из ваших флажков не установлен, и в этом случае вам следует вызвать свой обработчик. Нет необходимости запускать click событие

4. Присвоите флажку другой идентификатор и передайте его через событие onChange. Затем вы получите щелчок по каждому элементу отдельно.

5. @ThanveerShah Идентификатор для каждого из них кажется мне избыточным, основываясь на предоставленной информации. Вероятно, операция может повторяться на основе имени класса и его индекса.

Ответ №1:

Вы можете выполнить цикл по списку, который вы получаете с помощью $(".variable_manage_stock") , как это делает следующий код:

 var stockList = $(".variable_manage_stock");
stockList.each(function() {
  if ($(this).prop('checked') == false) {
    $(this).trigger('click');
  }
});  
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="checkbox" class="variable_manage_stock" name="variable_manage_stock[0]">
<input type="checkbox" class="variable_manage_stock" name="variable_manage_stock[1]">
<input type="checkbox" class="variable_manage_stock" name="variable_manage_stock[2]">
<input type="checkbox" class="variable_manage_stock" name="variable_manage_stock[3]">