【问题标题】:How can I check dynamic checkboxes with jquery如何使用 jquery 检查动态复选框
【发布时间】:2017-03-26 19:03:01
【问题描述】:

我正在尝试找到检查更改事件复选框的最简单方法。

我用 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>

查询:

$('#servicesCheck :checkbox').change(function () {
    // DO SOMETHING
});

我在代码中做错了什么。

【问题讨论】:

  • 什么是servicesCheck
  • @Xorifelse 我混淆了类和 id jquery 选择器。 servicesCheck 是类。

标签: php jquery checkbox selection


【解决方案1】:

我认为 jQuery 选择器是错误的。 您的 HTML 中的“servicesCheck”是一个类而不是一个 Id,

$('.servicesCheck input:checkbox').change(function () {
// DO SOMETHING
});

应该可以。

虽然 :checkbox 有效 ​​jQuery documentation 说:“建议在它前面加上标签名称或其他选择器”

【讨论】:

    【解决方案2】:

    您的 php 代码将生成多个具有相同 ID 的复选框。通过添加自动增量后缀来更改它.. 并且您在 jQuery 代码中使用了 #servicesCheck,这在此代码中不可用

    【讨论】:

    • 你说得对,我只是处理修复它。 echo "
    【解决方案3】:

    就我个人而言,我发现通过名称属性来专门定位更容易,因为它必须存在于源代码中,因为可能多个复选框需要不同的处理方式而不是同一个。

    如果你只有 1 个,Alvaro's 回答就足够了。

    $('#myloginform input[name=mycheckboxname]:checked').change(function(){
      console.log($(this).attr('name'));
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-26
      • 1970-01-01
      • 1970-01-01
      • 2011-10-14
      • 1970-01-01
      • 2013-09-03
      相关资源
      最近更新 更多