Html 下拉列表中的第一个选项在IE9中显示为空白
我在IE9中遇到了一个奇怪的错误 以下是下拉代码:Html 下拉列表中的第一个选项在IE9中显示为空白,html,Html,我在IE9中遇到了一个奇怪的错误 以下是下拉代码: <select> <option>1</option> <option>2</option> <option>3</option> </select> 1. 2. 3. 如果我在下拉列表的第一个选项中没有提到“selected”,那么除了IE9之外,其他所有浏览器都会选择它。甚至它在IE8中也能工作 这是一个错误还是我必
<select>
<option>1</option>
<option>2</option>
<option>3</option>
</select>
1.
2.
3.
如果我在下拉列表的第一个选项中没有提到“selected”,那么除了IE9之外,其他所有浏览器都会选择它。甚至它在IE8中也能工作
这是一个错误还是我必须为第一个选项提到“已选择”
有人能帮我吗?是的,你应该提到第一个选项的选择。
否则,它只会显示选项,但不会被选中。如果IE 9真的这样做(我没有IE 9,并且在使用IE 9仿真模式时,IE 11中不存在这个问题),那么它确实很奇怪,但从技术上讲不是一个bug。HTML 4.01规范说明了: 如果没有选项元素具有所选属性集,则用户代理 选择最初选择哪个选项的行为未定义。 注意。由于现有实现处理这种情况的方式不同,因此 当前规范不同于RFC 1866([RFC1866]第8.1.3节), 其中指出: 初始状态选择了第一个选项,除非任何元素上都存在选定属性 由于用户代理行为不同,作者应确保 菜单包括一个默认的预选选项 那是从1999年开始的,浏览器一般都采用了预先选择第一个选项的原则,如果有
选择的属性。但使用selected
属性仍然是最安全的
如果不希望最初选择任何选项,请在开始处插入一个空选项元素:
<select name=foo>
<option></option>
<option>1
<option>2
...
</select>
1.
2.
...
然后,用于处理的客户端和服务器端代码必须检查值是否为空,并适当地处理这种情况–这意味着用户没有进行任何选择,然后您可以接受这一点或将其作为错误条件处理。我的坏我做错了。我是根据用户之前选择的内容在页面加载上选择选项值的。如果用户未选择任何内容,则在这种情况下
“selectedVal”为空,因此会导致问题
我已经修改了下面的代码,现在它的工作绝对好
var selectedVal = userselectedval || 1;
$("select").val(selectedVal);
感谢您的快速回复