2013-02-21 139 views
2

我有两个选择字段。最小点和最大点。范围是5000到50000,我想要达到的是在最大值选择框中我想显示大于最小值选定值的值。启用在选择中禁用选项

例如,如果我从minpoint选择区域选择15000,然后在我的maxpoint选择框,我想隐藏/禁用前两个选项(5000和10000),因为它们都小于15000

Baiscally启用和禁用基于最小点的最大点数。

HTML看起来像这样

<select class="pointSelect" tabindex="2" id="minPoints" name="minPoints"> 
<option value="0" selected="selected">Min</option> 
<option value="5000">5000</option> 
<option value="10000">10000</option> 
<option value="15000">15000</option> 
<option value="20000">20000</option> 
<option value="25000">25000</option> 
<option value="30000">30000</option> 
<option value="40000">40000</option> 
<option value="50000">50000</option> 
</select> 
<select class="pointSelect" tabindex="3" id="maxPoints" name="maxPoints"> 
<option value="50000" selected="selected">Max</option> 
<option value="5000">5000</option> 
<option value="10000">10000</option> 
<option value="15000">15000</option> 
<option value="20000">20000</option> 
<option value="25000">25000</option> 
<option value="30000">30000</option> 
<option value="40000">40000</option> 
<option value="50000">50000</option> 
</select> 

我想这样的事情,但没有达到标准但

$('#minPoints').change(function(){ 
    var index = $(this).find('option:selected').index(); 
    $('maxPoints').find('option').lt(index).attr('disabled','disabled'); 
    $('maxPoints').find('option').gt(index).removeAttr('disabled'); 
    }); 

有人可以请指导?

回答

3

可以显示和基于其索引选择性隐藏选项:

$('#minPoints').change(function() { 
    var index = $(this).find('option:selected').index(); 
    $('#maxPoints').find('option:lt(' + index + ')').hide(); 
    $('#maxPoints').find('option:gt(' + index + ')').show(); 
}); 

$('#maxPoints').change(function() { 
    var index = $(this).find('option:selected').index(); 
    $('#minPoints').find('option:gt(' + index + ')').hide(); 
    $('#minPoints').find('option:lt(' + index + ')').show(); 
}); 

jsfiddle

+1

感谢朋友!我认为这是所谓的开箱即用,并提供创新的解决方案!它对你的帮助非常感谢! :) – Kalish 2013-02-21 11:32:00

0

你宁愿用ltgt这样 -

$("#maxPoints").find("option:lt("+index+")").attr("disabled","disabled"); 
$("#maxPoints").find("option:gt("+index+")").removeAttr("disabled"); 

工作小提琴:here

+0

这很好,虽然我可能会推荐使用'.prop(“disabled”,true)'和'.prop(“disabled”,false)'而不是([example](http://jsfiddle.net/) Kq9nY /))。 – 2013-02-21 11:37:18

+0

感谢您指点@MotaBOS,我假设问题中的示例正在某些方面开展工作。已删除我的答案。 – gaurav 2013-02-21 11:38:42

+0

@RubenInfante - 是的,我同意。 – Ashwin 2013-02-21 11:42:36