我有这个代码用于选中是否选中了复选框,并在此基础上禁用其他复选框,但无论是否选中复选框,它都始终为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>
我没有弄错任何人都可以帮助我。
答案 0 :(得分:1)
您对getElementsByClassName
的使用存在问题,因为它返回一个数组,document.getElementsByClassName("EducationCheckbox2001").disabled
无法执行任何操作。您也将test
作为变量传递,因为没有名为test
的变量也会失败,您应该将其作为字符串传递给onclick="DisableCheckboxes('test')"
<input type="checkbox" name="2011" class="EducationCheckbox2011" value="EducationLiteracyRate2011" id="test" onclick="DisableCheckboxes(this)" />
然后
function DisableCheckboxes(el) {
$('#test1, .EducationCheckbox2001').prop('disabled', el.checked)
}
我还建议你将事件注册移到jQuery而不是使用内联事件处理程序,所以
<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)
})
})
答案 1 :(得分:-1)
将您的id
名称传递给单引号,例如
onclick="DisableCheckboxes('test')"
您是混合javascript
和jQuery
代码。这是jQuery
代码,您想要enabled/disabled
您的复选框。试试这个
function DisableCheckboxes(id)
{
var isChecked = $("#"+id).is(':checked');
$("#test1, .EducationCheckbox2001").prop("disabled",isChecked);
}