检查是否选中了复选框或使用jquery检查nt

时间:2015-02-05 06:18:00

标签: jquery

我有这个代码用于选中是否选中了复选框,并在此基础上禁用其他复选框,但无论是否选中复选框,它都始终为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>

我没有弄错任何人都可以帮助我。

2 个答案:

答案 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')"

您是混合javascriptjQuery代码。这是jQuery代码,您想要enabled/disabled您的复选框。试试这个

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