动态下拉选项未在IE7中显示

时间:2011-04-11 03:07:40

标签: javascript drop-down-menu

我们有一个下拉列表,使用javascript(下面)动态填充。但它没有在IE7中显示。

这是填充选项的代码:

<script language="javascript" type="text/javascript">
        window.onload = function() {
        var today= new Date();
        var year= today.getFullYear();
        var val =0;
        t2= 51;
        grad_yr                 = document.getElementById("grad_yr");
        grad_yr.options[0]  = new Option("Year",val,false,false);
        var y=year;
        var yy=y;       
        for (var i=1; i <t2 ; i++) {
            grad_yr.options[i] = new Option(y,y);
            y=yy-1;
            yy--;
        }
        }
</script>

这是HTML:

<select name="grad_yr" id="grad_yr"></select>

可能出现什么问题?


编辑:好的,没关系。显然,该列表实际上正在填充。只是我们有另一个javascript,它会移动选项的位置,这就是它看起来隐藏的原因。不管怎样,谢谢!

2 个答案:

答案 0 :(得分:1)

您使用grad_yr变量和select元素的相同全局变量名称创建了名称冲突。通过ID注释您从文档中提取grad_yr的行,因为它是不必要的:

//grad_yr = document.getElementById("grad_yr");
grad_yr.options[0] = new Option("Year", val, false, false);

或者,如果你真的需要一个变量引用,只需给你的变量一个不同的名字,比如这个(或者其他一些):

grad_yrVar = document.getElementById("grad_yr");
grad_yrVar.options[0] = new Option("Year", val, false, false);
...
 for (var i = 1; i < t2; i++) {
     grad_yrVar.options[i] = new Option(y, y);
     y = yy - 1;
     yy--;
 }

......它应该有用。

答案 1 :(得分:0)

试试这个

var grad_yr = document.getElementById("grad_yr");