2012-08-02 166 views
0

我有兩個下降,即Min PriceMax Price,我想改變第一個選擇的第二個下拉值。如何更改基於第一個下拉選擇的第二個下拉值?

說例如1st drop-down selection is 100 means, 2nd drop-down value should be greater than the 100, if it is 200 in 1st, value of 2nd should be greater than 200

jQuery中或JS任何想法?

+0

嗨瑞奇我不知道如何做到這一點,請引導我 – 2012-08-02 12:34:31

+1

我問過,因爲在你尋求幫助之前表明你已經嘗試了一些東西,這被認爲是一種很好的做法,否則就好像你要求某人做你的功課一樣......但是因爲這是一個很受歡迎的問題我想你有5個實現準備好=)選擇一個;) – ricardoespsanto 2012-08-02 12:39:24

回答

7

最簡單的我能想到的(這個可以讓你回到你的選擇,你可以選擇400,然後200,一切工作)

<select id='min'> 
<option value='100'>100</option> 
<option value='200'>200</option> 
<option value='300'>300</option> 
<option value='400'>400</option> 
</select> 
<select id='max'> 
<option value='100'>100</option> 
<option value='200'>200</option> 
<option value='300'>300</option> 
<option value='400'>400</option> 
</select>​ 

var removed; 

$('#min').change(function() { 
    var value = this.value; 
    $('#max').prepend(removed); 
    var toKeep = $('#max option').filter(function() { 
     return parseInt(this.value, 10) >= parseInt(value, 10); 
    }); 
    removed = $('#max option').filter(function() { 
     return parseInt(this.value, 10) < parseInt(value, 10); 
    }); 
    $('#max').html(toKeep); 
});​ 

http://jsfiddle.net/NjLNF/2/

編輯 - 添加parseInt函數()爲每個評論

+0

其工作正常高達100至900,之後(1000,2000,..)其工作不正常檢查此[http://jsfiddle.net/NjLNF/1/](http://jsfiddle.net/NjLNF/1 /) – 2012-08-02 14:44:41

+0

@LearneR是的,你是對的,因爲你需要parseInt()的值http://jsfiddle.net/NjLNF/2/ – 2012-08-02 15:24:51

0
$('#first_dd').change(function(){ 
var dd_val=$(this).val(); 
var options = ""; 
$('#second_dd').html(''); 
for(var i=parseInt(dd_val+1);i<=END-LIMIT;i++) 
{ 
$('#second_dd').append('<option value='+i+'>'+i+'</option>'); 
} 
}); 

我沒有在瀏覽器中測試它。考慮系統,只需遵循邏輯。

+0

是的,但是如果用戶爲第一個下拉列表選擇一個較高的值,然後改變他的想法並想要一個較低的值,該怎麼辦? – 2012-08-02 12:39:24

0
$(function() { 
     $("#one").change(function (e) { 
      $("#two").empty(); 

      var options = 
      $("#one option").filter(function(e){ 
       return $(this).attr("value") > $("#one option:selected").val(); 
      }).clone(); 

      $("#two").append(options); 
     }); 
    }); 
+0

如果你想回去?我的意思是,如果你先選擇4第一個下拉,然後是一個? – 2012-08-02 12:37:23

+0

腳本不會改變(影響)'#one'下拉列表的值,只是將大於##的值克隆到'#two' – Kalpesh 2012-08-02 12:43:47

1

你可以使用jQuery和更改功能。如果你的第一個下拉列表是drop1,那麼它就是$(「#drop1」)。change(function(){..把你的函數放在第二個下拉列表中。

0

將一個監聽器添加到Min價格下拉,然後遍歷最高出價的值下拉,直到你找到比選擇最低價格下拉的值。像這樣的事情

$('#minPrice').change(function(){ 
    var minVal = $('#minPrice option:selected').val(); 
    $('#maxPrice option').each(function(){ 
      if(minVal < $(this).val()){ 
      $(this).attr('selected', 'selected'); 
      return false; 
      } 
    }); 
}); 
相關問題