2012-08-02 138 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; 
      } 
    }); 
}); 
相关问题