And*_*ndy 398 html cross-browser
我已经对此有所了解,但我似乎无法找到关于不同浏览器如何处理事物的任何信息.
oez*_*ezi 684
一个readonly
元素就是不可编辑,但是当根据被发送form
的提交.一个disabled
元素是不可编辑和提交不发送电子邮件.另一个不同之处在于readonly
元素可以被聚焦(并且在通过表格"标记"时获得焦点)而disabled
元素则不能.
在这篇伟大的文章或w3c的定义中阅读更多相关内容.引用重要部分:
关键差异
已禁用属性
- 禁用的表单元素的值不会传递给处理器方法.W3C将其称为成功元素.(这类似于未选中的表单复选框.)
- 某些浏览器可能会覆盖或为已禁用的表单元素提供默认样式.(灰色或浮雕文本)Internet Explorer 5.5对此特别讨厌.
- 禁用的表单元素不会获得焦点.
- 在选项卡式导航中跳过已禁用的表单元素.
只读属性
- 并非所有表单元素都具有只读属性.最值得注意的是
<SELECT>
,<OPTION>
和<BUTTON>
元素没有readonly属性(尽管它们都具有禁用属性)- 浏览器不提供默认的重写视觉反馈,表单元素是只读的.(这可能是一个问题......见下文.)
- 具有readonly属性集的表单元素将传递给表单处理器.
- 只读表单元素可以获得焦点
- 标签式导航中包含只读表单元素.
Hri*_*pta 90
当元素具有禁用属性时,不会触发任何事件.
以下都不会被触发.
$("[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
Run Code Online (Sandbox Code Playgroud)
虽然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
Run Code Online (Sandbox Code Playgroud)
Mic*_*yen 33
禁用表示在提交表单时不会提交该表单元素的数据.只读意味着将提交元素内的任何数据,但用户无法更改.
例如:
<input type="text" name="yourname" value="Bob" readonly="readonly" />
Run Code Online (Sandbox Code Playgroud)
这将为元素"yourname"提交值"Bob".
<input type="text" name="yourname" value="Bob" disabled="disabled" />
Run Code Online (Sandbox Code Playgroud)
这将不会为元素"yourname"提交任何内容.
"已禁用元素"属性不会提交,也可能表示其值不会随请求一起发布.
即
<input type="textbox" name="field" value="field" disabled="disabled" />
Run Code Online (Sandbox Code Playgroud)
区别
如果要发布字段数据,请使用readonly属性.
即
<input type="textbox" name="field" value="field" readonly="readonly" />
Run Code Online (Sandbox Code Playgroud)
与其他答案相同(禁用不会发送到服务器,只读是),但一些浏览器阻止突出显示禁用的表单,而只读仍然可以突出显示(和复制)。
http://www.w3schools.com/tags/att_input_disabled.asp
http://www.w3schools.com/tags/att_input_readonly.asp
不能修改只读字段。但是,用户可以选择它,突出显示它,并从中复制文本。