jQuery禁用多个下拉列表不起作用

时间:2012-03-12 16:52:58

标签: jquery html

我有一个企业输入他们的工作时间的下拉菜单。每天都有一个下拉列表,ID为hours_dayname_open和hours_dayname_closed。我还有一个复选框,将其标记为已关闭。如果选中它,我使用以下jQuery来禁用下拉列表:

$("#closed_monday").click( function(){
    if($(this).is(':checked')){
        $("#hours_monday_open").attr("disabled", true);
        $("#hours_monday_closed").attr("disabled", true);
    }else{
        $("#hours_monday_open").attr("disabled", false);
        $("#hours_monday_closed").attr("disabled", false);
    }
});

但是,当选中该复选框时,仅禁用/启用开放时间...关闭的下拉列表似乎被忽略。

3 个答案:

答案 0 :(得分:5)

奇怪的是,正确的属性是disabled,而不是true

$("#hours_monday_open").attr("disabled", "disabled");

要启用它,请删除已禁用的属性:

$("#hours_monday_open").removeAttribute("disabled");

从jQuery 1.6开始,您可以使用.prop()功能来清除/设置它。

答案 1 :(得分:0)

    $("#closed_monday").click( function(){
      if($(this).is(':checked')){
        $("#hours_monday_open, #hours_monday_closed").attr("disabled", "disabled");
      }else{
        $("#hours_monday_open, #hours_monday_closed").removeAttribute("disabled");
      }
    });​

答案 2 :(得分:0)

$("#closed_monday").change( function(){
    if($(this).is(':checked')){
        $("#hours_monday_open").attr("disabled", "disabled");
        $("#hours_monday_closed").attr("disabled", "disabled");
    }else{
        $("#hours_monday_open").removeAttribute("disabled");
        $("#hours_monday_closed").removeAttribute("disabled");
    }
});

这是对.change()和.click()的简单更改,只是错误的事件。

http://jsfiddle.net/6Yr8Q/2/