IE 9在刷新时不遵循selectedIndex

时间:2014-08-14 08:43:19

标签: javascript internet-explorer drop-down-menu

我使用JavaScript将下拉值设置为"彼得"在加载页面时。

我在IE 9 .0.28中注意到你加载页面后,"彼得"被选中。如果你将下拉菜单设置为" John"并刷新页面," John"保持选中状态。

事实上,如果你插入一个警告声明,你会看到刷新时会弹出一个警告窗口"彼得"在下拉列表中正确选择。但是在你点击OK之后," John"再次被选中。

升级IE不是一种选择。其他浏览器都很好。

以下是重现的代码:

<!DOCTYPE html>
<html dir="ltr" xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head><title>getElementById method (Internet Explorer)</title></head>

<body>
<form>
<input type='hidden' id='theName' value='Peter' />
<select id="employees" size="1">
<option value="">John</option>
<option value="">Peter</option>
</select>
</form>         

<script type="text/javascript">

var theName = document.getElementById('theName').value;
var theDropdown = document.getElementById('employees');

for (var i = 0; i < theDropdown.options.length; i++) {
    if (theDropdown.options[i].innerHTML === theName) {
            theDropdown.selectedIndex = i;
            alert("Hooooold");
            break;
        }
    }

</script>


</body>
</html>

只能用代码解决这个问题?

1 个答案:

答案 0 :(得分:1)

在onLoad事件

中添加脚本逻辑
<!DOCTYPE html>
<html dir="ltr" xmlns="http://www.w3.org/1999/xhtml" lang="en">

<head>
    <title>getElementById method (Internet Explorer)</title>
</head>

<body>
    <form>
        <input type='hidden' id='theName' value='Peter' />
        <select id="employees" size="1">
            <option value="">John</option>
            <option value="">Peter</option>
        </select>
    </form>

    <script type="text/javascript">
        window.onload = function() {
            var theName = document.getElementById('theName').value;
            var theDropdown = document.getElementById('employees');
            for (var i = 0; i < theDropdown.options.length; i++) {
                if (theDropdown.options[i].innerHTML === theName) {
                    theDropdown.selectedIndex = i;
                    alert("Hooooold");
                    break;
                }
            }
        };
    </script>


</body>

</html>

这有效:)