我有两个下降,即Min Price
和Max 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任何想法?
我有两个下降,即Min Price
和Max 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任何想法?
最简单的我能想到的(这个可以让你回到你的选择,你可以选择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);
});
编辑 - 添加parseInt函数()为每个评论
其工作正常高达100至900,之后(1000,2000,..)其工作不正常检查此[http://jsfiddle.net/NjLNF/1/](http://jsfiddle.net/NjLNF/1 /) – 2012-08-02 14:44:41
@LearneR是的,你是对的,因为你需要parseInt()的值http://jsfiddle.net/NjLNF/2/ – 2012-08-02 15:24:51
$('#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>');
}
});
我没有在浏览器中测试它。考虑系统,只需遵循逻辑。
是的,但是如果用户为第一个下拉列表选择一个较高的值,然后改变他的想法并想要一个较低的值,该怎么办? – 2012-08-02 12:39:24
$(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);
});
});
如果你想回去?我的意思是,如果你先选择4第一个下拉,然后是一个? – 2012-08-02 12:37:23
脚本不会改变(影响)'#one'下拉列表的值,只是将大于##的值克隆到'#two' – Kalpesh 2012-08-02 12:43:47
你可以使用jQuery和更改功能。如果你的第一个下拉列表是drop1,那么它就是$(“#drop1”)。change(function(){..把你的函数放在第二个下拉列表中。
将一个监听器添加到Min价格下拉,然后遍历最高出价的值下拉,直到你找到比选择最低价格下拉的值。像这样的事情
$('#minPrice').change(function(){
var minVal = $('#minPrice option:selected').val();
$('#maxPrice option').each(function(){
if(minVal < $(this).val()){
$(this).attr('selected', 'selected');
return false;
}
});
});
嗨瑞奇我不知道如何做到这一点,请引导我 – 2012-08-02 12:34:31
我问过,因为在你寻求帮助之前表明你已经尝试了一些东西,这被认为是一种很好的做法,否则就好像你要求某人做你的功课一样......但是因为这是一个很受欢迎的问题我想你有5个实现准备好=)选择一个;) – ricardoespsanto 2012-08-02 12:39:24