2011-10-11 65 views
314

我已经阅读了一些,但我似乎无法找到任何关于不同浏览器如何处理事情的可靠信息。我构建的应用必须符合Section 508(屏幕阅读器可访问)并且可以清除回IE 6。对于HTML表单输入字段,disabled =“disabled”和readonly =“readonly”有什么区别?

+0

安迪:你提到的textarea的,但我们不能一概而论你的问题的所有HTML表单输入字段? @oezi的(v好)答案似乎是这样做的。如果您没有问题,我会更新您的问题。 –

+0

相关:“如何模拟select标签的readonly属性,并仍然获取POST数据?” http://stackoverflow.com/questions/368813/html-form-readonly-select-tag-input –

回答

534

A readonly元素只是不可编辑的,但在根据form提交时发送。 disabled元素不可编辑,并且在提交时不会发送。另一个区别是,readonly元素可以被聚焦(并且在通过表单“挂钩”时变得更加集中),而disabled元素不能。

了解更多关于这this great articlethe definition by w3c。引述重要的部分:

主要差异

disabled属性

  • 值供残疾人使用的形式的元素并不传递到处理器的方法。在W3C称这种成功的元素。(这个工作原理类似于未签 形式复选框。)
  • 一些浏览器可以覆盖或提供禁用的表单元素的默认样式。 (灰色或浮雕文字)Internet Explorer 5.5对此特别讨厌。
  • 禁用的表单元素不接收焦点。
  • 残疾人表单元素被跳过在跳格导航。

只读属性

  • 并非所有的表单元素有一个只读属性。最值得一提的<SELECT><OPTION><BUTTON>元素没有只读属性 (虽然你都有残疾属性)
  • 浏览器没有提供默认覆盖视觉反馈表单元素是只读的。 (这可能是一个问题......请看下文。)
  • 与只读属性设置表单元素将会得到传递给表单处理。
  • 只读形式元素可以接收焦点
  • 只读形成元件包括在标签式导航。
+4

只读元素上不能使用CTRL + C,但你可以用鼠标右键单击并选择复制。 – Rumplin

+6

@Rumplin你确定吗?我刚刚测试过,并且能够在OS X上的Chrome中使用键盘快捷键进行复制。 – evanrmurphy

+5

“并非所有表单元素都具有只读属性。最值得注意的是,