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 = "";
    }
})

查看全部 2 个回答

0

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

推荐答案

0

已采纳

最后还是自己找到了根源所在。。谷歌内核的浏览器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 = "";
        }
    })