我正在尝试找到检查更改事件复选框的最简单方法。
我使用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
});
我的代码中出错了什么。
答案 0 :(得分:1)
我认为jQuery选择器是错误的。 &#39; servicesCheck&#39;在HTML中是一个类而不是Id,
$('.servicesCheck input:checkbox').change(function () {
// DO SOMETHING
});
应该有用。
虽然:复选框有效jQuery documentation说:&#34;建议在它前面添加标签名称或其他选择器&#34;
答案 1 :(得分:0)
您的PHP代码将生成具有相同ID的多个复选框。通过添加自动增量后缀来更改它...并且您在jQuery代码中使用了#servicesCheck
,这在此代码中不可用
答案 2 :(得分:0)
就个人而言,我发现通过name属性更容易专门定位,因为它必须存在于源代码中,因为多个复选框可能需要不同的处理而不是相同的处理。
如果您只有1,Alvaro's答案就足够了。
$('#myloginform input[name=mycheckboxname]:checked').change(function(){
console.log($(this).attr('name'));
});