根据另一个菜单中的选择禁用一个菜单中的选项

时间:2013-12-08 14:26:01

标签: jquery html-select

我有一个菜单,当从中选择一个值时,可以启用其他菜单,可以选择一个月(开始月份和结束月份)。我想补充一点,即月末不能在开始月份之前的限制,我不知道如何去做。

这是jsfiddle:

http://jsfiddle.net/5ZqKE/

这样的事可能吗?

$("#recurBegin").change(function(){
  var begin = $("#recurBegin option:selected").attr("value");
  //disable options in #recurEnd where the value is less than that of #recurBegin.
}
});

3 个答案:

答案 0 :(得分:1)

fiddle Demo

var end = $('#recurEnd');
$('#recurBegin').change(function () {
    var index = $(this).find('option:selected').index();
    end.find('option').show();
    end.find('option:lt(' + index + ')').hide();
});

<小时/> .index()

:lt()

.prop()

答案 1 :(得分:1)

我认为这会给你你想要的东西。

HTML:

<div class="col-sm-9">
    <select name="catFrequency" id="catFrequency" onchange="toggleAnnual();">
        <option value="0">Monthly</option>
        <option value="1">Annual</option>
    </select>
</div>
<div class="col-sm-8">
    <select  name="monthSelect" id="recurBegin" value="Select Month">
        <option value='' selected></option>
        <option value='01'>January</option>
        <option value='02'>February</option>
        <option value='03'>March</option>
        <option value='04'>April</option>
        <option value='05'>May</option>
        <option value='06'>June</option>
        <option value='07'>July</option>
        <option value='08'>August</option>
        <option value='09'>September</option>
        <option value='10'>October</option>
        <option value='11'>November</option>
        <option value='12'>December</option>
    </select>
</div>

<div class="col-sm-3 clearfix">
    <label class="control-label">Ending Month:</label>
</div>
<div class="col-sm-9">
    <select name="monthSelect" id="recurEnd" value="Select Month">
    </select>
</div>

的javascript:

$("#recurBegin").change(function(){
    $("#recurEnd").empty();
    var add = false;

    $("#recurBegin option").each(function(i, val){
        if($(this).is(':selected')) add = true;
        if(add){
            $("#recurEnd").append($(this).clone());
        }        
    });
});

看到这个小提琴:http://jsfiddle.net/PpESb/

答案 2 :(得分:0)

您可以使用选项索引:

DEMO

$("#recurBegin").change(function () {
    var begin = $(this).find('option:selected').index();
    $('#recurEnd').find('option').prop('disabled', false).filter(':lt(' + begin + ')').prop('disabled', true);
    $('#recurEnd').val(function(){return $(this).find('option:enabled:first').val()});
});