0

我已经onchange在 html 复选框上的事件上调用了这个函数。当我第一次单击表中的所有控件时,表中的所有控件都被禁用,但是当我重新单击时,我希望它们再次启用。我希望它不是 javasrcipt$("#checkbox1").change

function notewizardcheckbox() {
             $('#DispalyTable td').find('*').attr('disabled', "disabled");

    }

请帮助我
提前致谢

4

3 回答 3

4

我建议:

function notewizardcheckbox(el) {
    // this does require you to pass in the element, though
    var el = el.nodeType && el.nodeType == 1 ? el : false;
    if (el === false) {
        return false;
    }
    $('#DisplayTable td').find('*').prop('disabled', !el.checked);

}

然而,就个人而言,我看不出有任何不使用该change()方法来处理事件的正当理由,它绝对是有效的 JavaScript,尽管它是一个 jQuery 方法,以模拟onchange/change事件。

因此,除非您正在寻找一个普通的 JavaScript 替代方案,否则似乎有充分的理由避免它,即使这个要求,仍然可以使用本机事件。

参考:

于 2013-06-12T12:44:19.810 回答
2

尝试使用prop()andis(":checked")来检查它是否被选中..

function notewizardcheckbox(obj) {
    if($(obj).is(":checked")){
        $('#DispalyTable td').find('*').prop('disabled', true);
    }else{
         $('#DispalyTable td').find('*').prop('disabled', false);
    }

}

并确保你在 onchange 事件中传递这个onchange=notewizardcheckbox(this)

或者

在我收到所有评论后更新.. :)

function notewizardcheckbox(obj) {

    $('#DispalyTable td').find('*').prop('disabled', obj.checked);


}
于 2013-06-12T12:43:38.320 回答
-1

尝试

   $("input[type=checkbox]").click(function () {
 if($(this).attr('checked',true))
  {
 $('#DispalyTable td').find('*').attr('disabled', false);
 }
else
{
  $('#DispalyTable td').find('*').attr('disabled', "disabled");
 }
});
于 2013-06-12T12:48:16.787 回答