我使用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>
只能用代码解决这个问题?
答案 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>
这有效:)