javascript - jQuery 检查复选框不起作用

标签 javascript jquery html checkbox

我正在尝试使用 JQuery 1.9.1 在 HTML 表单上实现“全选”复选框。据我所知,它应该像使用 .prop 来选中或取消选中复选框一样简单,但我尝试的任何方法似乎都不起作用。

请参阅下面的内容,了解我所尝试的内容,我已经注释掉了一些失败的尝试,但我什至无法使其对一个复选框起作用。这样做的正确方法是什么?我是否遗漏了某些内容,可能是在 HTML 中?

HTML

<input type="checkbox" id="cb_select_all" name="cb_select_all" value="t" />
<label for="cb_select_all"><b>Select All</b>
</label>
<br />
<input type="checkbox" name="cb1" id="cb1" class="cb_all" value="t" />
<label for="cb1">1 test</label>
<br />
<input type="checkbox" name="cb2" id="cb2" class="cb_all" value="t" />
<label for="cb2">2 test</label>

Javascript

$(document).ready(function () {
    $("#cb_select_all").change(cb_select_all_onchange);
}); //end $(document).ready

function cb_select_all_onchange() {
    if ($("#cb_select_all").checked) {
        //$("#cb1").prop("checked", true);
        //$(".cb_all").each(function(){ this.checked = true; });
        //document.getElementById("cb1").checked = true;
        $(".cb_all").prop("checked", true);
    } else {
        $("#cb1").prop("checked", false);
    }
}

http://jsfiddle.net/mLnb5qed/5/

谢谢, jdt

最佳答案

将您的 if 更改为此

if ($("#cb_select_all")[0].checked) { }

( 或 ) if ($("#cb_select_all").is(":checked")) { } 问题是第一个是 native 元素的属性而不是 jQuery 对象。通过索引访问它使您能够使用该属性。第二种方式是jQuery方式。

关于javascript - jQuery 检查复选框不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26281448/

相关文章:

javascript - 可以在不改变布局或 DOM 的情况下使用 jQuery Mobile 吗?

jquery - 如何让这个 jquery/css3 "pairs"游戏响应?

javascript - 从多维数组转换为javascript中的json对象以在Angular 8应用程序上的表(网格)中迭代

javascript - 比较子串数组

javascript - AJAX 请求错误,尽管数据已成功更新。 "Unexpected Token <"

html - 表格中的背景颜色不显示空单元格

javascript - JS函数去除textarea中的尾随字母

javascript - 与 ng-repeat trackBy 的一次性绑定(bind)不会更新

更改元素颜色属性的 JavaScript 代码

javascript - jquery 30天查询