从动态选择框中隐藏选项(取决于第一个选择的值)

时间:2013-09-05 06:37:24

标签: javascript jquery

我有两个选择字段

选择field1:

<select id="minprice" required name="minprice" class="sell-textfield">
            <option value="">Select</option>
            <option value="3">less than 10 lakh</option>
            <option value="1000000">10 Lakhs</option>
            <option value="2000000">20 Lakhs</option>
            <option value="3000000">30 Lakhs</option>
            <option value="4000000">40 Lakhs</option>
            <option value="5000000">50 Lakhs</option>
            <option value="6000000">60 Lakhs</option>
            <option value="7000000">70 Lakhs</option>
            <option value="8000000">80 Lakhs</option>
            <option value="9000000">90 Lakhs</option>
            <option value="10000000">1 Crore</option>
            <option value="12000000">1.2 Crores</option>
            <option value="14000000">1.4 Crores</option>
            <option value="16000000">1.6 Crores</option>
            <option value="18000000">1.8 Crores</option>
            <option value="20000000">2 Crores</option>
            <option value="22500000">2.25 Crores</option>
            <option value="30000000">3 Crores</option>
            <option value="35000000">3.5 Crores</option>
            <option value="40000000">4 Crores</option>
            <option value="45000000">4.5 Crores</option>
            <option value="50000000">5 Crores</option>
            <option value="60000000">6 Crores</option>
            <option value="70000000">7 Crores</option>
            <option value="80000000">8 Crores</option>
            <option value="90000000">9 Crores</option>
            <option value="100000000">10 Crores</option>
            <option value="150000000">15 Crores</option>
            <option value="200000000">20 Crores</option>
            <option value="300000000">30 Crores</option>
            <option value="400000000">40 Crores</option>
            <option value="500000000">50 Crores</option>
            <option value="12345678901234567890">Above 50 Crores</option>
        </select>

选择field2:

<select id="maxprice" required name="maxprice" class="sell-textfield">
            <option value="">Select</option>
            <option value="1000000">10 Lakhs</option>
            <option value="2000000">20 Lakhs</option>
            <option value="3000000">30 Lakhs</option>
            <option value="4000000">40 Lakhs</option>
            <option value="5000000">50 Lakhs</option>
            <option value="6000000">60 Lakhs</option>
            <option value="7000000">70 Lakhs</option>
            <option value="8000000">80 Lakhs</option>
            <option value="9000000">90 Lakhs</option>
            <option value="10000000">1 Crore</option>
            <option value="12000000">1.2 Crores</option>
            <option value="14000000">1.4 Crores</option>
            <option value="16000000">1.6 Crores</option>
            <option value="18000000">1.8 Crores</option>
            <option value="20000000">2 Crores</option>
            <option value="22500000">2.25 Crores</option>
            <option value="30000000">3 Crores</option>
            <option value="35000000">3.5 Crores</option>
            <option value="40000000">4 Crores</option>
            <option value="45000000">4.5 Crores</option>
            <option value="50000000">5 Crores</option>
            <option value="60000000">6 Crores</option>
            <option value="70000000">7 Crores</option>
            <option value="80000000">8 Crores</option>
            <option value="90000000">9 Crores</option>
            <option value="100000000">10 Crores</option>
            <option value="150000000">15 Crores</option>
            <option value="200000000">20 Crores</option>
            <option value="300000000">30 Crores</option>
            <option value="400000000">40 Crores</option>
            <option value="500000000">50 Crores</option>
            <option value="12345678901234567890">Above 50 Crores</option>
        </select>

现在我试图隐藏maxprice中的选项,这些选项小于minprice的选择选项。所以我创建了一个关于minprice更改的函数:

$("#minprice").change(function() {
var i;  
for(i=1;i<=32;i++){
    if($('#maxprice option').eq(i).val()<$(this).val()) {               
        $('#maxprice option').eq(i).hide();
    }else{
        $('#maxprice option').eq(i).show();

    }
}
});

该函数在最低价格下给予20万分之一时,从maxprice中隐藏1千万卢比,1.2千万卢比 当以最低价格获得30万卢比时,从最大价格中隐藏2亿卢比,2.25千万卢比。等等。

我已检查过所有内容,但无法找到问题所在。

3 个答案:

答案 0 :(得分:2)

您可以尝试使用此功能:DEMO

$("#minprice").change(function() {

  var i = $('option:selected', this).index();
  $("#maxprice option").show();
  $("#maxprice option:lt("+ i +")").hide();

});

答案 1 :(得分:1)

所以两个选择都有相同的选项,我想你可以这样做:

$("#minprice").change(function() {
    var $this = $(this);
    var $option = $this.find('option[value='+$this.val()+']');
    var curIndex = $option.index();
    $('#maxprice option:lt('curIndex')').hide();
});

答案 2 :(得分:0)

试试这个:

<script type="text/javascript">
$(document).ready(function(){
    $('#minprice').on('change',function(){
        var min = $(this);
        var max = $('#maxprice');
        var minSel = this.selectedIndex;

        max.find('option').removeAttr('disabled').removeAttr('selected');
        max.find('option:eq('+minSel+')').prevAll('option').attr('disabled',true);
    });
});
</script>