我有两个下拉列表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()
您可以使用 jquery 和更改功能。如果您的第一个下拉列表的 id 是 drop1,那么它将是 $("#drop1").change(function() { .. 将您的函数放在这里以填充第二个下拉列表..
$('#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>');
}
});
我没有在浏览器中测试它。考虑系统,只需遵循逻辑即可。
$(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);
});
});
将侦听器添加到 Min Price 下拉列表,然后遍历 Max Price 下拉列表的值,直到找到大于所选 Min Price 下拉列表的值。像这样的东西
$('#minPrice').change(function(){
var minVal = $('#minPrice option:selected').val();
$('#maxPrice option').each(function(){
if(minVal < $(this).val()){
$(this).attr('selected', 'selected');
return false;
}
});
});