JQuery, если флажок не установлен - PullRequest
0 голосов
/ 13 июня 2018

Что не так в следующем коде jquery?Если выбран menu, который содержит value 1, необходимо проверить хотя бы один submenu.

Не работает, если проверено подменю, все равно это предупреждающее сообщение и оно останавливается.Я пытаюсь добавить [name='submenu[]'] или сохранить значение в variable, но это не работает.

if ($("[name='menu[]']:checked").val() == 1) {
  if ($("[name='submenu[][]']:checked").length == 0) {
    alert('Select at least one submenu ');
    return false;
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
  <li><input type="checkbox" name="menu[]" value="1">News
    <ul>
      <li><input type="checkbox" name="submenu[1][]" value="1">Local</li>
      <li><input type="checkbox" name="submenu[1][]" value="2">National</li>
    </ul>
  </li>
  <li><input type="checkbox" name="menu[]" value="2">Views</li>
  <li><input type="checkbox" name="menu[]" value="3">Comment</li>
</ul>

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

Посмотрев на ваш код, я понимаю, что вы хотите проверить, что по крайней мере один флажок должен быть отмечен

присваивать тот же класс аналогичным флажкам, как,

<li><input type="checkbox" class="submenuCkeckbox" name="submenu[1][]" value="1">Local</li>
<li><input type="checkbox"  class="submenuCkeckbox" name="submenu[1][]" value="2">National</li>

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

function validate(){
    var alertFlag = false;

    $(".submenuCkeckbox").each(function () {
        if ($(this).is(':checked')) {
            alertFlag = true;
        }
    });

    if (!alertFlag ) {
        alert('Select Atleast one checkbox');
    }
}
0 голосов
/ 13 июня 2018

Вы можете сделать это следующим образом: https://codepen.io/creativedev/pen/aKwJGW

$(document).ready(function() {
  $('input[type="checkbox"]').click(function () {
      if ($("[name='menu[]']:checked").val() == 1) {
                console.log($("[name^='submenu']:checked").length);
        if ($("[name^='submenu']:checked").length == 0) {
          alert('Select at least one submenu ');
          //return false;
        }
      }
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...