我有一个时间下拉菜单,在一个选项中显示小时,在另一个选项中显示分钟,在第三个中显示AM / PM。我有一个复选框,上面写着“全天”
我希望如此,当用户检查“全天”时,所有选择的下拉列表都会被禁用。
答案 0 :(得分:4)
复选框的问题主要是让它们在IE6中正常工作,因为change
事件会以各种无用的方式触发。
让我们从禁用功能开始:
function onCheckChange() {
if ($("#all-day-checkbox").is(':checked'))
$("select").attr('disabled', 'disabled');
else
$("select").removeAttr('disabled');
}
请注意,我这里仅使用select
,这几乎肯定比您想要的更宽泛,但select.some-class-to-identify-the-hours-and-minutes-and-seconds-dropdowns
也可以正常使用。
另请注意,该功能会自动确定是否已选中此框,使其具有幂等性:在检查框中可重复调用。
现在我们只需将该函数绑定到几个不同的事件:
$("#all-day-checkbox").click(onCheckChange).change(onCheckChange);
$("label[for=all-day-checkbox]").click(onCheckChange);
答案 1 :(得分:0)
$('#allday').toggle(
function(){
$('#hour, #minutes, #am-pm').attr('disabled', 'disabled');
},
function(){
$('#hour, #minutes, #am-pm').removeAttr('disabled');
}
);
答案 2 :(得分:0)
试试这个。
$('#checkbox').change(function(){
$('#Hour, #Minute, #Period').attr('disabled', this.checked);
});