我有这些数值下拉选择最小值和最大值,当您选择其中一个下拉的值时,其他人应该更新删除值不在范围内,例如: 如果MIN = 15000 - >最大选项将开始15000和将不显示10K和5K选项下拉为最小值和最大值,而不是在EI9和IE8更新JQuery
HTML
<div class="filters" id="size-filters">
<select id="sf-size-min" name="sf-size-min" class="price-dropdown">
<option selected="selected" disabled="disabled" value="none">Space Min</option>
<option value="0">0</option>
<option value="5000">5,000</option>
<option value="10000">10,000</option>
<option value="15000">15,000</option>
<option value="20000">20,000</option>
<option value="25000">25,000</option>
</select>
<select id="sf-size-max" name="sf-size-max" class="price-dropdown">
<option selected="selected" disabled="disabled" value="none">Space Max</option>
<option value="0">0</option>
<option value="5000">5,000</option>
<option value="10000">10,000</option>
<option value="15000">15,000</option>
<option value="20000">20,000</option>
<option value="25000">25,000</option>
</select>
JS
$(function(){
var all_values=[];
var initial_options=$('#sf-size-min').get(0).options;
for(i=0; i<initial_options.length; i++)
{
var val=parseInt(initial_options[i].value);
var lbl=initial_options[i].label;
all_values[i]={value: val, label: lbl };
}
document.getElementById('sf-size-min').options;//$('#sf-size-min').get(0).options;
$('#sf-size-min').change(function(){
var $src=$('#sf-size-min');
var $target=$('#sf-size-max');
var prev_max_value=$target.val();
var current_min_value=$src.val();
//clear max drop down list
$target.get(0).options.length=0;
var j=0;
for(i=$src.get(0).selectedIndex; i<all_values.length; i++)
{
$target.get(0).options[j++]=new Option(all_values[i].label, all_values[i].value);
}
$target.val(prev_max_value);
});
$('#sf-size-max').change(function(){
var $src=$('#sf-size-max');
var $target=$('#sf-size-min');
var prev_min_value=$target.val();
var current_max_value=parseInt($src.val());
//clear min drop down list
$target.get(0).options.length=0;
var j=0;
for(i=0; i<all_values.length; i++)
{
if (current_max_value > all_values[i].value)
$target.get(0).options[j++]=new Option(all_values[i].label, all_values[i].value);
}
$target.val(prev_min_value);
});
});
http://jsfiddle.net/dianaavila/2UEr6/2/
这是在FF,Chrome和IE10伟大的工作。但在IE9和8上,更新后我得到一个空列表。
谢谢你的帮助。
***更新:问题是目标对象没有标签,试图找出原因。
太棒了!我一直在寻找几个小时的解决方案,这一个解决了它。我们有'ng-repeat'的角度填充选项,这在IE8中不起作用。添加'label =“{{item}}”'修复了它。 –