prop({disabled:false})在chrome上不起作用

发布于 2022-09-05 05:24:36 字数 904 浏览 8 评论 0

我用火狐可以把禁用的多选框开启,但是换到chrome就不行了,一直都是锁住的(我默认就是锁住的)。请问怎么可以在Chrome上把禁用的复选框开启?我试了几种方法都不行,jq版本是1.11.3的
这是我的程序(当下拉列表的val值为4、5和请选择的时候让复选框禁用,其他值的时候开启):

$("option").click(function(){
    var value = $(this).val();
    if(value == "5" || value == "4"||value == "请选择"){
        $(".addition").prop("disabled",true);
        $("#evaluate_table :checkbox").prop("disabled",true);
//      $(".addition").prop({disabled:true});
//      $("#evaluate_table :checkbox").prop({disabled:true});
        value = "";
    }
    else{
//      $(".addition").prop("disabled",false);
//      $("#evaluate_table :checkbox").prop("disabled",false);
        $(".addition").removeProp("disabled");
        $("#evaluate_table :checkbox").removeProp("disabled");
//      $(".addition").prop({disabled:false});
//      $("#evaluate_table :checkbox").prop({disabled:false});
        value = "";
    }
})

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一片旧的回忆 2022-09-12 05:24:36

最后还是自己找到了根源所在。。谷歌内核的浏览器option都不支持click事件。。我看网上说ie也不支持,但是我用ie测试是好的,可能是之前版本的ie吧,但是谷歌是真不支持。。。
把给option的click事件换成给select的change事件,查select的值的改变就行了,改的新版本如下:

$("#evaluate_select").change(function(){
        var val = $(this).val();
        alert(val);
        if(val == "5" || val == "4"||val == "0"){
            $(".addition").prop("disabled",true);
            $("#evaluate_table :checkbox").prop("disabled",true);
            val = "";
        }
        else{
            $(".addition").prop("disabled",false);
            $("#evaluate_table :checkbox").prop("disabled",false);
            val = "";
        }
    })
困倦 2022-09-12 05:24:36

不行就换种方式呗,disabled这种布尔属性也可以试试.attr().removeAttr()这种组合,根据规范来说,布尔属性只要属性在,不管值是什么都是true,jQ手册上是说在1.6+版本用.attr('disabled')就行了,当然你也可以自己加个true值上去,需要false时再删掉就行了。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文