2013-02-21 128 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