我已经阅读了一些,但我似乎无法找到任何关于不同浏览器如何处理事情的可靠信息。我构建的应用必须符合Section 508(屏幕阅读器可访问)并且可以清除回IE 6。对于HTML表单输入字段,disabled =“disabled”和readonly =“readonly”有什么区别?
回答
A readonly
元素只是不可编辑的,但在根据form
提交时发送。 disabled
元素不可编辑,并且在提交时不会发送。另一个区别是,readonly
元素可以被聚焦(并且在通过表单“挂钩”时变得更加集中),而disabled
元素不能。
了解更多关于这this great article或the definition by w3c。引述重要的部分:
主要差异
disabled属性
- 值供残疾人使用的形式的元素并不传递到处理器的方法。在W3C称这种成功的元素。(这个工作原理类似于未签 形式复选框。)
- 一些浏览器可以覆盖或提供禁用的表单元素的默认样式。 (灰色或浮雕文字)Internet Explorer 5.5对此特别讨厌。
- 禁用的表单元素不接收焦点。
- 残疾人表单元素被跳过在跳格导航。
只读属性
- 并非所有的表单元素有一个只读属性。最值得一提的
<SELECT>
,<OPTION>
和<BUTTON>
元素没有只读属性 (虽然你都有残疾属性)- 浏览器没有提供默认覆盖视觉反馈表单元素是只读的。 (这可能是一个问题......请看下文。)
- 与只读属性设置表单元素将会得到传递给表单处理。
- 只读形式元素可以接收焦点
- 只读形成元件包括在标签式导航。
只读元素上不能使用CTRL + C,但你可以用鼠标右键单击并选择复制。 – Rumplin
@Rumplin你确定吗?我刚刚测试过,并且能够在OS X上的Chrome中使用键盘快捷键进行复制。 – evanrmurphy
“并非所有表单元素都具有只读属性。最值得注意的是,
Disabled表示在提交表单时没有提交表单元素的任何数据。只读表示元素中的所有数据都将被提交,但用户不能更改。
例如:
<input type="text" name="yourname" value="Bob" readonly="readonly" />
这将提交值 “鲍勃” 为元件 “提供yourname”。
<input type="text" name="yourname" value="Bob" disabled="disabled" />
这将不提交元素“yourname”。
同其他答案(禁用不发送到服务器,只读IS),但某些浏览器限制禁用形式的突出,而只读仍然可以突出显示(和复制)。
http://www.w3schools.com/tags/att_input_disabled.asp
http://www.w3schools.com/tags/att_input_readonly.asp
只读字段不能被修改。但是,用户可以选中它,突出显示它,并从中复制文本。当元素是具有禁用属性
*旁注:*您相信w3schools?哎呀。阅读http://www.w3fools.com/ – Raptor
@Raptor w3schools不再皱眉。来自w3fools.com:_W3Schools仍然存在问题,但他们至少在开发者所关心的主要问题上工作过。对于许多初学者来说,W3Schools有结构化的教程和游乐场,提供了不错的学习体验._ –
没有事件被触发。的
无下文将得到触发。
$("[disabled]").click(function(){ console.log("clicked") });//No Impact
$("[disabled]").hover(function(){ console.log("hovered") });//No Impact
$("[disabled]").dblclick(function(){ console.log("double clicked") });//No Impact
虽然readonly会被触发。
$("[readonly]").click(function(){ console.log("clicked") });//log - clicked
$("[readonly]").hover(function(){ console.log("hovered") });//log - hovered
$("[readonly]").dblclick(function(){ console.log("double clicked") });//log - double clicked
极好的补充! – Andy
元素与残疾人属性不会提交或者可以说他们的价值观就不会贴有要求。
即
<input type="textbox" name="field" value="field" disabled="disabled" />
差分
- 残疾人控件不接收焦点。
- 禁用的控件在标签导航中跳过。
- 禁用的控件无法成功发布。
如果您想发布您的字段数据,请使用只读属性。
即
<input type="textbox" name="field" value="field" readonly="readonly" />
- 只读元素接收焦点,但不能被用户修改。
- 只读元素包含在Tab键导航中。
- 只读元素已成功发布。
- 1. ASP.NET中ReadOnly = true和TextBox1.Attributes.Add(“readonly”,“readonly”)有什么区别?
- 2. DataGridViewCheckBoxCell类型DataGridView列是不断readonly/disabled
- 3. ReadOnly或Disabled-Grayed Task复选框?
- 4. .net中的readonly属性和函数有什么区别?
- 5. 没有setter的readonly和prop有什么区别?
- 6. ReadOnly和Enabled之间的主要区别是什么?
- 7. 为什么Disabled = ture for html work?
- 8. 为什么GetAttribute(“disabled”)返回“true”而不是“disabled”?
- 9. 使用@Transactional(readOnly = true)有什么好处?
- 10. 基于一个值对一组输入使用ng-disabled
- 11. Readonly PropertyGrid
- 12. AngularJS:ng-disabled是否删除输入值?
- 13. 在IE中定制disabled =“disabled”样式
- 14. 在vb.net中使用显式获取语句的一行ReadOnly属性和ReadOnly之间的区别
- 15. openWYSIWYG disabled textarea
- 16. List和ReadOnly属性
- 17. android radiobutton disabled
- 18. 字段和表单域之间有什么区别?
- 19. Readonly textarea和IE9滚动条
- 20. drupal表单和HTML表单之间有什么区别
- 21. IPAddress.Any和IPAddress.IPv6Any字段有什么区别?
- 22. javascript将“disabled”属性移除为html输入
- 23. 如何在readOnly字段禁止焦点
- 24. 创建Magento后端字段ReadOnly
- 25. 为`private static readonly`字段创建存根
- 26. Textbox not readonly
- 27. Property'Item'是'ReadOnly'
- 28. “file.open(QIODevice :: ReadOnly)”是什么意思?
- 29. Readonly vs disbled从我的代码中出现什么问题?
- 30. Microsoft.Extensions.Configuration ReadOnly?!?!真?
安迪:你提到的textarea的,但我们不能一概而论你的问题的所有HTML表单输入字段? @oezi的(v好)答案似乎是这样做的。如果您没有问题,我会更新您的问题。 –
相关:“如何模拟select标签的readonly属性,并仍然获取POST数据?” http://stackoverflow.com/questions/368813/html-form-readonly-select-tag-input –