【发布时间】:2013-09-25 21:35:23
【问题描述】:
如何在chrome浏览器的输入字段中使用readonly属性时启用光标移动,与firefox一起工作正常。这是为了观察输入框中不可编辑的完整值。知道这是一个依赖于浏览器的事实功能,还有其他方法可以覆盖吗?
【问题讨论】:
标签: javascript jquery html google-chrome
如何在chrome浏览器的输入字段中使用readonly属性时启用光标移动,与firefox一起工作正常。这是为了观察输入框中不可编辑的完整值。知道这是一个依赖于浏览器的事实功能,还有其他方法可以覆盖吗?
【问题讨论】:
标签: javascript jquery html google-chrome
Chrome 不允许光标在只读文本框中闪烁的一个很好的原因是,闪烁的光标表明用户可以在该控件中键入内容。
因此,如果您想违背该原则,首先值得从用户体验的角度来决定!
如果您真的这样做,您可以通过使用自定义 data- 属性来伪造只读行为,以指定您希望输入为只读,然后忽略任何非导航按键。
var allowedKeys = {
"37" : "arrow-left",
"38" : "arrow-up",
"39" : "arrow-right",
"40" : "arrow-down",
"9" : "tab",
"27" : "esc"
}
$("input[data-readonly=readonly]").keydown(function(e){
console.log(e.which);
if (!allowedKeys[e.which]) {
e.preventDefault();
}
});
您可以在此处查看小提琴。 http://jsfiddle.net/BUcC2/1/
如果您的意图是让它成为一个应该以标准方式运行的普通输入控件,我建议不要使用这种方法并坚持浏览器对显示 html 的最佳方式的解释:)
【讨论】:
这在谷歌浏览器中是不可能的,因为当它是只读的时你不能设置光标在输入字段中移动,但在 IE 和 firefox 中是可能的。
【讨论】: