如何根据第一个下拉选择更改第二个下拉值?
我有两个下降,即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,一切正常)
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); });
EDIt - 根据评论添加了parseInt()
您可以使用jquery和更改function。 如果第一个下拉列表的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(''); } });
我没有在浏览器中测试它。 考虑系统,只需遵循逻辑。
$(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下拉值,直到找到大于所选最小价格下拉列表的值。 像这样的东西
$('#minPrice').change(function(){ var minVal = $('#minPrice option:selected').val(); $('#maxPrice option').each(function(){ if(minVal < $(this).val()){ $(this).attr('selected', 'selected'); return false; } }); });