我有一个企业输入他们的工作时间的下拉菜单。每天都有一个下拉列表,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);
}
});
但是,当选中该复选框时,仅禁用/启用开放时间...关闭的下拉列表似乎被忽略。
答案 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()的简单更改,只是错误的事件。