根据其他输入启用和禁用菜单

时间:2013-12-08 15:49:03

标签: jquery html-select

我使用上面的代码工作了,感谢SO的帮助。但是,我想对其进行修改,以便当用户从月份开始菜单中选择“12月”时,月末菜单将被禁用并显示“12月”。

此外,如果用户返回并选择月份开始菜单中的其他月份,我想再次启用月末菜单。

我一直在尝试使用各种if语句,但我似乎无法使用我公认的有限技能。

谢谢!

JSFiddle here.

$("select[name='monthSelect']").attr('disabled', 'disabled');

$("select[name='catFrequency']").change(function () {
    var jSelect1=$("select[name='monthSelect']");

    if(jSelect1.attr('disabled')) {
      jSelect1.removeAttr('disabled');
      $('#recurBegin').find("option[value='']").remove();
      $('#recurEnd').find("option[value='']").remove();
      $('#recurEnd').find("option[value='12']").prop('selected', true);
    }
    else
    {
      jSelect1.attr('disabled', 'disabled');
      $("#recurBegin").prepend("<option value='' selected='selected'></option>");
      $("#recurEnd").prepend("<option value='' selected='selected'></option>");
    }
});
    var end = $('#recurEnd');
    $('#recurBegin').change(function () {
    var index = $(this).find('option:selected').index();
    end.find('option').show();
    end.find('option:lt(' + (index + 1) + ')').hide();
});
});

1 个答案:

答案 0 :(得分:1)

fiddle Demo

var end = $('#recurEnd');
$('#recurBegin').change(function () {
    if (this.value == 12) {//if month selected is December
        end.val(12);// set End month to December
        end.prop('disabled', true);//disable month end
    } else {
        var index = $(this).find('option:selected').index();
        end.prop('disabled', false);//enable month end
        end.find('option').show();
        end.find('option:lt(' + (index + 1) + ')').hide();
        end.find('option:eq(' + ++index + ')').prop('selected', true);
    }
});

.prop()