Bob*_*ack 10 html forms specifications cross-browser
在我的具体示例中,我正在处理下拉列表,例如:
<select name="foo" id="bar">
<option disabled="disabled" selected="selected">Select an item:</option>
<option>an item</option>
<option>another item</option>
</select>Run Code Online (Sandbox Code Playgroud)
当然,这是非常荒谬的,但我想知道是否定义了任何严格的行为.Opera有效地拒绝'selected'属性并选择列表中的下一个项目.所有其他浏览器似乎都允许它,并保持选中状态.
更新:为了澄清,我对初始选择特别感兴趣.我正在处理其中一个'选择一个项目:' - 类型下拉列表,在这种情况下,第一个选项实际上是一个标签,并且会发生一个动作onchange().这是相当好的"逐步增强",因为提交按钮存在,并且只能通过JavaScript删除.如果删除了"选择..."选项,那么无论何时成为第一个项目都将无法选择.我们只是onchange完全排除下降,还是应该选择"选择......"选项,只是没有效果?
关于这个奇怪的组合,HTML规范有点模糊(即完全缺乏).他们确实说具有disabled属性集的表单元素不应该成功,因此实际上无法选择它.
浏览器可能会渲染它以使其看起来被选中,但它不应该显示在POSTed数据中.看起来Opera对我来说是正确的.
在回复问题中的更新时,我想说“标签”选项应该是可选择的,但要么让它在提交时不执行任何操作,要么通过JavaScript,不允许在没有选择值的情况下提交表单(假设它是必填字段)。
从可用性的角度来看,我建议两者都做,这样所有的基础都被覆盖。