Я пытаюсь найти самый простой способ проверить флажки событий изменения.
Я создал флажки с PHP-скриптом
PHP:
<div class="form-group">
<div class="col-md-12 servicesCheck" style="margin-top:-10px">
<?php
foreach ($data["languageSchool"]["services"] as $service) {
$required = "";
$checked = "";
if ($service["is_required"] == "1") {
$required = "disabled";
$checked = "checked";
}
echo "<div class='checkbox " . $required . "'>";
echo " <label><input id='services' type='checkbox' " . $checked . " " . $required . " value='" . $service["price"] . "'>" . $service["name"] . "</label>";
echo "</div>";
}
?>
</div>
</div>
Jquery:
$('#servicesCheck :checkbox').change(function () {
// DO SOMETHING
});
Что я сделал не так в своем коде.
Я думаю, что селектор jQuery не так.
‘servicesCheck’ в вашем HTML — это класс, а не идентификатор,
$('.servicesCheck input:checkbox').change(function () {
// DO SOMETHING
});
должно сработать.
Хотя: флажок работает документация по jQuery говорит: «Рекомендуется ставить перед ним имя тега или другой селектор»
Ваш PHP-код будет генерировать несколько флажков с одинаковым идентификатором. измените его, добавив суффикс автоинкремента .. а также вы использовали #servicesCheck
в коде JQuery, который не доступен в этом коде
Лично я считаю, что проще целенаправленно указывать атрибут по имени, поскольку он должен существовать в исходном коде, так как, вероятно, несколько флажков требуют другой обработки, а не одного и того же.
Если у вас есть только 1, Альваро ответа будет достаточно.
$('#myloginform input[name=mycheckboxname]:checked').change(function(){
console.log($(this).attr('name'));
});