当用户单击复选框时,禁用某些下拉选择控件

时间:2009-08-21 01:44:08

标签: jquery combobox

我有一个时间下拉菜单,在一个选项中显示小时,在另一个选项中显示分钟,在第三个中显示AM / PM。我有一个复选框,上面写着“全天”

我希望如此,当用户检查“全天”时,所有选择的下拉列表都会被禁用。

3 个答案:

答案 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);    
});