【发布时间】:2019-10-16 17:03:33
【问题描述】:
如果<select> 元素具有selected 选项,Chrome 将忽略该选定选项,即使在使用浏览器的“导航返回”功能时<select> 元素上的autocomplete="off" 也是如此。我发现的一种解决方法是将选择包装在 <form> 中,但我不希望在我的 html 中包含无关的表单。
问题:有没有办法在 Chrome 中解决这个问题而不用包装在表单元素中? (Firefox不会出现此行为,其他浏览器未测试)
使用 Chrome 77 进行重现:
1.) 访问这个 jsfiddle,并将两个选择更改为“一个”。请注意,“Two”是两者的选定选项,因此当页面加载时,这应该在两个元素中都被选中
2.) 点击链接到google(页面导航实际上不会发生,jsfiddle 输出实际上不能导航到网页)
3.) 鼠标点击 jsfiddle 输出后,点击浏览器的后退按钮
4.) 您会注意到,包装在表单中的 select 元素默认选择了正确的元素,“Two”。未包装在表单中的 select 元素选择了不正确的元素,“One”
https://jsfiddle.net/m5hg8n40/1/
<!-- chrome ignores 'selected' -->
<select autocomplete="off">
<option value="1">One</option>
<option value="2" selected>Two</option>
</select>
<br><br>
<a href="https://google.com">google.com</a>
<br><br>
<!-- chrome obeys 'selected' -->
<form autocomplete="off">
<select>
<option value="1">One</option>
<option value="2" selected>Two</option>
</select>
</form>
【问题讨论】:
标签: html google-chrome