如何使用 jquery 检查动态复选框
How can I check dynamic checkboxes with jquery
我正在尝试找到检查更改事件复选框的最简单方法。
我使用 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 中是 Class 而不是 Id,
$('.servicesCheck input:checkbox').change(function () {
// DO SOMETHING
});
应该可以。
尽管 :checkbox 有效 jQuery documentation 说:"it is recommended to precede it with a tag name or some other selector"
您的 php 代码将生成多个具有相同 ID 的复选框。通过添加一个自动递增后缀来改变它..而且你在jQuery代码中使用了#servicesCheck
,这在这个代码
中不可用
就我个人而言,我发现通过名称属性专门定位更容易,因为它必须存在于源代码中,因为多个复选框可能需要不同的处理而不是相同的处理。
如果您只有 1 个, 个答案就足够了。
$('#myloginform input[name=mycheckboxname]:checked').change(function(){
console.log($(this).attr('name'));
});
我正在尝试找到检查更改事件复选框的最简单方法。
我使用 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 中是 Class 而不是 Id,
$('.servicesCheck input:checkbox').change(function () {
// DO SOMETHING
});
应该可以。
尽管 :checkbox 有效 jQuery documentation 说:"it is recommended to precede it with a tag name or some other selector"
您的 php 代码将生成多个具有相同 ID 的复选框。通过添加一个自动递增后缀来改变它..而且你在jQuery代码中使用了#servicesCheck
,这在这个代码
就我个人而言,我发现通过名称属性专门定位更容易,因为它必须存在于源代码中,因为多个复选框可能需要不同的处理而不是相同的处理。
如果您只有 1 个,
$('#myloginform input[name=mycheckboxname]:checked').change(function(){
console.log($(this).attr('name'));
});