在HTML中,选定的、禁用的选项元素会发生什么情况?

在HTML中,选定的、禁用的选项元素会发生什么情况?,html,forms,cross-browser,specifications,Html,Forms,Cross Browser,Specifications,在我的具体示例中,我处理的是一个下拉列表,例如: 选择一个项目: 项目 另一项 对于这种奇怪的组合,HTML规范有点模糊(即完全缺乏)。他们确实说,具有禁用属性集的表单元素不应该成功,所以它确实无法被选择 浏览器很可能会渲染它,使其看起来是选中的,但它不应该显示在发布的数据中。看起来Opera对我来说是对的。说明选中和禁用都是元素的可用选项,但没有指定在发生冲突时应执行的操作。上面说 设置后,禁用的属性将被禁用 元素上的以下效果: 禁用的控件不接收焦点 在选项卡导航中跳过禁用的控件 禁用的

在我的具体示例中,我处理的是一个下拉列表,例如:


选择一个项目:
项目
另一项

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

浏览器很可能会渲染它,使其看起来是选中的,但它不应该显示在发布的数据中。看起来Opera对我来说是对的。

说明选中和禁用都是
元素的可用选项,但没有指定在发生冲突时应执行的操作。上面说

设置后,禁用的属性将被禁用 元素上的以下效果:

  • 禁用的控件不接收焦点
  • 在选项卡导航中跳过禁用的控件
  • 禁用的控件无法成功
它还说

禁用元素的呈现方式取决于用户代理。例如,一些用户代理“灰显”禁用了菜单项、按钮标签等。在本例中,输入元素被禁用。因此,它不能接收用户输入,其值也不会随表单一起提交


虽然未指定此特定情况,但我的理解是,“选定”“禁用”元素的实际呈现由浏览器决定。只要用户不能选择它,那么它就是标准的。它确实说脚本可以作用于元素,因此Javascript可以将禁用的选项设置为选中(或禁用选中的选项)。这并不违反标准,但在提交表单时,该选项的值不能是所选值。在这种情况下,选择列表(我假设)必须有一个空值。

根据HTML 4.01规范,但是行为可能根据标准是不确定的(仔细阅读有关选择元素和选项元素的信息)。我认为下面的一部分可能会阐明Opera实现它们的原因:

设置时,禁用的属性对元素具有以下影响:
*禁用的控件不接收焦点。
*在选项卡导航中跳过禁用的控件。
*禁用的控件无法成功


因此,这很可能只是其中一个规范不够模糊,无法同时进行两种解释的情况。这是一种使网络编程变得如此有趣和有益的特质。:p

在回答问题中的更新时,我想说“标签”选项应该是可选择的,但要么让它不做在提交时或通过JavaScript提交时,不允许在未选择值的情况下提交表单(假设它是必填字段)

从实用性的角度来看,我建议两者兼而有之,这样就涵盖了所有的基础

我们只是排除了“一次改变”的可能性吗 到底是彻底的失败,还是应该 “选择…”选项可以选择,只需 没有效果

“onchange”下拉列表受到更多标准痴迷者的反对

我通常会做一些客户端验证。“请从下拉列表中选择一个项目”之类的事情

“选择…”选项是否可以选择,但不起作用


所以我只是对你的A或B问题说了“是”。/对不起!

不幸的是,应该发生什么并不重要,因为IE不支持选项期间的disabled属性