【问题标题】:javascript options selected IE6 vs. FF2javascript 选项选择 IE6 与 FF2
【发布时间】:2012-07-28 13:42:06
【问题描述】:

以下 js 在 FF2 中运行良好,但在 IE6 中,下拉菜单总是选择一个选项来提早,IE -> testix2 vs. FF2 -> testix3 如果我们在脚本的某处添加一个 alertBox,它在 IE6 中也可以正常工作。 但是没有alertBox怎么解决呢?

tia

<script language="JavaScript" type="text/javascript">
<!--
function Entry(value, name, selected) {
    this.value = value;
    this.name = name;
    this.selected = selected;
}


//-->
</script>
        <select id="selSeaShells">

        </select>
<script language="JavaScript" type="text/javascript">
<!--
var productCategoryLevel2 = new Array();

productCategoryLevel2.push(new Entry('Hallo1', 'testix1', false));
productCategoryLevel2.push(new Entry('Hallo2', 'testix2', false));
productCategoryLevel2.push(new Entry('Hallo3', 'testix3', true));

    var i = 0;
        for (i in productCategoryLevel2) {
        var optL2 = document.createElement('option');
        optL2.selected = true;

                optL2.text = productCategoryLevel2[i].name;
        optL2.value = productCategoryLevel2[i].value;
        if (productCategoryLevel2[i].selected == true) {
            productCategoryLevel2[i].selected = true;
            optL2.selected = true;
        } else {
            optL2.selected = false;     
        }
                try {
            document.getElementById("selSeaShells").add(optL2, null);
                } catch(ex3) {
            document.getElementById("selSeaShells").add(optL2);
                }
        }
//-->
</script>

【问题讨论】:

    标签: javascript html internet-explorer-6 html-select


    【解决方案1】:

    我不完全确定您的示例为什么不起作用,但如果您这样做(即在

    var i = 0;
    for (i in productCategoryLevel2) {
        var optL2 = document.createElement('option');
    
        optL2.text = productCategoryLevel2[i].name;
        optL2.value = productCategoryLevel2[i].value;
        try {
            document.getElementById("selSeaShells").add(optL2, null);
        } catch(ex3) {
                document.getElementById("selSeaShells").add(optL2);
        }
    
        if (productCategoryLevel2[i].selected == true) {
                document.getElementById("selSeaShells").selectedIndex = i;
        }      
    }
    

    【讨论】:

      【解决方案2】:

      我现在无法对此进行测试,但您可能希望使用标准的 for(;;) 循环而不是 for..in 结构来迭代您的数组,后者只能用于 javascript 中的对象。

      【讨论】:

        【解决方案3】:

        这感觉像是一个 IE 错误(我想知道将 true 转换为 1 是否有问题),但是您已经通过将选择索引基于选项而不是 tomhaigh 修复的选择本身来实现它。

        重要的是要意识到,如果您从零选项开始,那么您想为 select 的第一个选项赋予什么值并不重要 - 作为一组元素中的一个元素,它只能被选中=true。

        (我也同意三联画关于for

        【讨论】:

          猜你喜欢
          • 2010-12-21
          • 1970-01-01
          • 2015-12-02
          • 1970-01-01
          • 1970-01-01
          • 2013-09-22
          • 2018-12-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多