Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 下拉列表中的第一个选项在IE9中显示为空白_Html - Fatal编程技术网

Html 下拉列表中的第一个选项在IE9中显示为空白

Html 下拉列表中的第一个选项在IE9中显示为空白,html,Html,我在IE9中遇到了一个奇怪的错误 以下是下拉代码: <select> <option>1</option> <option>2</option> <option>3</option> </select> 1. 2. 3. 如果我在下拉列表的第一个选项中没有提到“selected”,那么除了IE9之外,其他所有浏览器都会选择它。甚至它在IE8中也能工作 这是一个错误还是我必

我在IE9中遇到了一个奇怪的错误

以下是下拉代码:

<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); 
感谢您的快速回复