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