javascript - 最小值和最大值的下拉列表,不在 EI9 和 IE8 JQuery 中更新

标签 javascript jquery html internet-explorer-8 internet-explorer-9

我有这些带有数值的下拉菜单来选择最小值和最大值,当您在任一下拉菜单中选择一个值时,另一个应该更新以删除不在范围内的值,例如: 如果 min = 15,000 -> max 选项将从 15,000 开始并且不会显示 10K 和 5K 选项

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 上,我在更新后得到一个空列表。

感谢您的帮助。

***更新:问题是目标对象没有标签,试图找出原因。

最佳答案

我发现答案 super 简单明了!不知何故我的错。

“option”标签没有“label”属性。大多数浏览器都能够识别开始和结束标签之间的文本可以作为标签,但 IE8 和 9 不能。

所以我刚刚添加了“label”属性及其内容和 ta-da!

查看更新的 fiddle :http://jsfiddle.net/2UEr6/4/

更新的 HTML

<div class="filters" id="size-filters">
<select id="sf-size-min" name="sf-size-min" class="price-dropdown">
    <option label="Space Min" selected="selected" disabled="disabled" value="none">Space Min</option>
    <option label="0" value="0">0</option>
    <option label="5000" value="5000">5,000</option>
    <option label="10000" value="10000">10,000</option>
    <option label="15000" value="15000">15,000</option>
    <option label="20000" value="20000">20,000</option>
    <option label="25000" value="25000">25,000</option>
</select>
<select id="sf-size-max" name="sf-size-max" class="price-dropdown">
    <option label="Space Max" selected="selected" disabled="disabled" value="none">Space Max</option>
    <option label="0" value="0">0</option>
    <option label="5000" value="5000">5,000</option>
    <option label="10000" value="10000">10,000</option>
    <option label="15000" value="15000">15,000</option>
    <option label="20000" value="20000">20,000</option>
    <option label="25000" value="25000">25,000</option>
</select>

关于javascript - 最小值和最大值的下拉列表,不在 EI9 和 IE8 JQuery 中更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23815889/

相关文章:

javascript - <div> 中的文本重叠

javascript - 更改:before and :after pseudo-elements?的样式

javascript - 通过 Vanilla javascript更改数据目标按钮属性

javascript - AngularJS 中的 href 和 ng-click

javascript - 将 GeoJSON 对象包裹在 Leaflet.js map 周围

jquery - 从多个列表框中选择时如何获取当前选定的选项值

jquery - 如何使用 jQuery 将 id 属性添加到具有特定类的 html 标签?

javascript - 使用用户输入搜索数组

javascript - 如何检查一个类是否有值并在之后切换一个类

javascript - 如何设置两个并排的div独立滚动?