获取在Internet Explorer中显示的下拉菜单

时间:2013-12-31 02:08:26

标签: javascript forms internet-explorer option

嗯,这是我的问题。我创建了一个非常简单的下拉菜单表单,使用Javascript和HTML(当然还有互联网)。它在下面的框架中打开一个页面,在Chrome中完美运行。它在Internet Explorer中可以工作,但如果在列表中选择较低的选项,请关闭菜单并重新打开它,选项“浮动”在表单上。

<form action="../cgi-bin/redirect.pl" 
method=post onSubmit="return dropdown(this.selection)"
target="Frame2">

<select name="selection"> 
<option value="">Choose an option:
<option value="2012-2013.html">2012/2013
<option value="2011-2012.html">2011/2012
<option value="2010-2011.html">2010/2011
<option value="2009-2010.html">2009/2010
</select>
<input type=submit value="Choose">
</form>

这是JavaScript:

function dropdown(mySel){
var myWin, myVal;
myVal = mySel.options[mySel.selectedIndex].value;
if(myVal) {
if(mySel.form.target)myWin = parent[mySel.form.target];
else myWin = window;
if (! myWin) return true;
myWin.location = myVal; }
return false;}

正如您在this图片中看到的那样,它在Google Chrome中的功能正常。但不在Internet Explorer ,很多人仍然使用该浏览器。我今天真的不需要这些花哨的CSS菜单,这已经足够好了。我的问题是:是否有一个解决方案来显示IE中的dropdownmenu,就像它显示在Chrome中一样?

我已经尝试将类设置为表单,选择和选项标签来设置它们的顶部,但这并没有解决我的问题。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

你没有指定你看到这个问题的IE的哪个版本,但在IE11中,它不仅漂浮在窗体上,而且漂浮在IE窗口本身上。它似乎是IE的默认行为。你问的问题(为了说明这个问题)可以被剥夺它的js,因为你的问题是关于帖子之前发生了什么。我可以在这里用简化的html复制你的问题。

<!DOCTYPE html>
<html>
<body>
<form>
    <select name="selection"> 
        <option value="">Choose an option:
        <option value="2012-2013.html">2012/2013
        <option value="2011-2012.html">2011/2012
        <option value="2010-2011.html">2010/2011
        <option value="2009-2010.html">2009/2010
    </select>
    <input type=submit value="Choose">
</form>

</body>
</html>

您的情况是一个我个人不会担心的边缘情况。大多数人都没有使用IE,大多数人都不会重新选择一个选项。如果他们这样做,他们就会看到IE下拉行为就这样了。

以下是雅虎注册页面的快照。我在月份下拉菜单中选择了12月并重新选择了它。它们的下拉行为在IE中表现相同(与您的一样): http://tinypic.com/r/1qh1si/5