使用jquery检查复选框是否已选中或未选中

使用jquery检查复选框是否已选中或未选中,jquery,Jquery,我有此代码用于检查复选框是否选中,并在此基础上禁用其他复选框,但无论复选框是否选中,它总是显示为false <script> function DisableCheckboxes(id) { var isChecked = $(this).is(':checked') ? true : false; if (!isChecked) { document.getElementById("test1").disable

我有此代码用于检查复选框是否选中,并在此基础上禁用其他复选框,但无论复选框是否选中,它总是显示为false

<script>
    function DisableCheckboxes(id) {
        var isChecked = $(this).is(':checked') ? true : false;
        if (!isChecked) {
               document.getElementById("test1").disabled = false;
               document.getElementsByClassName("EducationCheckbox2001").disabled = false;

            } else {
               document.getElementById("test1").disabled = true;
               document.getElementsByClassName("EducationCheckbox2001").disabled = true;
            }
    }

</script>

功能禁用复选框(id){
var isChecked=$(this).is(':checked')?true:false;
如果(!已检查){
document.getElementById(“test1”).disabled=false;
document.getElementsByClassName(“EducationCheckbox2001”).disabled=false;
}否则{
document.getElementById(“test1”).disabled=true;
document.getElementsByClassName(“EducationCheckbox2001”).disabled=true;
}
}

我没有什么不对劲。有人能帮我吗。

把你的
id
名字用单引号括起来

onclick="DisableCheckboxes('test')"
你把
javascript
jQuery
代码混在一起了。这里是
jQuery
您想要
启用/禁用的代码
您的复选框。试试这个

function DisableCheckboxes(id) 
{
    var isChecked = $("#"+id).is(':checked');        
    $("#test1, .EducationCheckbox2001").prop("disabled",isChecked);
}

使用
getElementsByClassName
时出现问题,因为它返回一个数组,
document.getElementsByClassName(“EducationCheckbox2001”)。禁用
不会做任何事情。此外,您正在以变量的形式传递
test
,该变量也将失败,因为没有名为
test
的变量,您应该以字符串的形式传递它,如
onclick=“disablecheckbox('test')”

我还建议您将事件注册移到jQuery,而不是使用内联事件处理程序,因此

<input type="checkbox" name="2011" class="EducationCheckbox2011" value="EducationLiteracyRate2011" id="test" />

旁注:你应该决定走哪条路
jQuery
Vanilla Javascript
。这里没有理由把它们混在一起。向我们展示你的
HTML
标记。如何调用
禁用复选框
?什么是
id
?我只想继续,但我在做什么,我不明白。这是我调用它的方式,感谢代码,但它不起作用。我调试它时出现了一些错误错误错误是:未捕获错误:语法错误,无法识别的表达式:#[object HTMLInputElement]使用
.prop()
而不是
.attr()
尝试此
onclick=“disablecheckbox('test')”
在我在回答中提到的单引号中,您建议OP坚持使用
jQuery
,但您没有使用它附加
事件处理程序。为什么要在标记中保留内联
Javascript
?欢迎@preeti很高兴帮助您。
function DisableCheckboxes(el) {
    $('#test1, .EducationCheckbox2001').prop('disabled', el.checked)
}
<input type="checkbox" name="2011" class="EducationCheckbox2011" value="EducationLiteracyRate2011" id="test" />
//dom ready handler
jQuery(function ($) {
    //register a change event handler for the div
    $('#test').change(function (e) {
        $('#test1, .EducationCheckbox2001').prop('disabled', this.checked)
    })
})