html - 在 HTML 中,一个选中的、禁用的选项元素会发生什么?

标签 html forms cross-browser specifications

在我的具体示例中,我正在处理下拉菜单,例如:

<select name="foo" id="bar">
  <option disabled="disabled" selected="selected">Select an item:</option>
  <option>an item</option>
  <option>another item</option>
</select>

当然,这很荒谬,但我想知道是否定义了任何严格的行为。 Opera 有效地拒绝了“selected”属性并选择了列表中的下一项。所有其他浏览器似乎都允许它,并且它保持选中状态。

更新:澄清一下,我对最初的选择特别感兴趣。我正在处理其中一个“选择项目:”类型的下拉菜单,在这种情况下,第一个选项实际上是一个标签,并且会发生一个操作 onchange()。这是相当“渐进式增强”,因为存在提交按钮,并且只能通过 JavaScript 删除。如果“select...”选项被删除,那么成为第一项的任何内容都将无法选择。我们只是完全排除 onchange 下拉菜单,还是应该选择“select...”选项,但没有任何效果?

最佳答案

关于这种奇怪的组合,HTML 规范有点模糊(即完全没有)。他们确实说具有禁用属性集的表单元素不应该成功,所以它确实不能被选中。

浏览器可能会很好地渲染它,使其看起来被选中,但它不应该出现在 POSTed 数据中。看来 Opera 适合我。

关于html - 在 HTML 中,一个选中的、禁用的选项元素会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49790/

相关文章:

javascript - CESIUM AGI 中的绘图线

class - CKEditor 自动从 div 中剥离类

Javascript 食谱计算器,卡在 isNan() 函数上?

forms - 在 Twig 中设置 Symfony 2 表单域的默认值

python - 如何格式化/覆盖 Django 表单错误消息?

解码 JPEG 文件时跨浏览器不兼容?

html - 按类别将元素分成 2 列

forms - 在表单的占位符内添加跨度

javascript - 如何获取最大参数来确定浏览器问题?

testing - 如何在我的本地主机上自动化 BrowserStack 截图 API?