我的HTML下拉列表在IE6中不起作用

时间:2009-06-11 18:11:23

标签: javascript html internet-explorer-6

所以我使用带有国家/地区列表的HTML选择框和一个按钮来打开一个小窗口,其中包含HTML选择框中所选项目的更多详细信息。

这就是我在做这个的方式(我在这里为任何无趣的事先道歉,我还是Javascript的新手):

//in header
<script type="text/javascript">
function popUp() 
{
   countryName = document.getElementById("countrylist").value;
   document.write(countryName);
   dest = "countries/" + countryName + ".html";
   window.open(dest, 0, "toolbar=0, scrollbars=0, statusbar=0, menubar=0,resizable=0,width=400,height=400,left=440,top=312");
}
</script>

<form id="countryform">
<select id="countrylist">
        <!--List of countries removed for brevity-->
</select>
<input type="button" name="countryBtn" value="Submit Query" onClick="popUp();">
</form>

这适用于Firefox,但不适用于IE6。任何帮助将不胜感激!

更新:所以我尝试了下面的前两种方法,替代弹出功能在任一浏览器中都不起作用,替换document.getElementById行没有改变任何东西,在Firefox中仍能正常工作,不在IE中。

3 个答案:

答案 0 :(得分:6)

document.getElementById("countrylist").value;

需要:

document.getElementById("countrylist")[document.getElementById("countrylist").selectedIndex].value;

答案 1 :(得分:0)

您遇到的问题是获取国家/地区名称。我会将你的弹出功能更改为:

function popUp() {   

  var e = document.getElementById("countrylist"); 

  var countryName = e.options[e.selectedIndex].value; 

  dest = "countries/" + countryName + ".html";   
  window.open(dest, 0, "toolbar=0, scrollbars=0, statusbar=0, menubar=0,resizable=0,width=400,height=400,left=440,top=312");

}

答案 2 :(得分:0)

以下是我修复它的方法:

function popUp() 
{
   var c = document.getElementById("countrylist");
   var countryName = c.options[c.selectedIndex].text;
   var dest = "countries/" + countryName + ".html";
   window.open(dest, 0, "toolbar=0, scrollbars=0, statusbar=0, menubar=0,resizable=0,width=400,height=400,left=440,top=312");
}

这适用于IE6和FF3。

感谢您的帮助!