我需要一个输入文本框,我可以在其中单击并且光标开始闪烁,但用户无法更改其中的任何文本。
我尝试使用“只读”或“禁用”属性,但它们不允许光标位于文本框内。因此,我正在考虑一种在普通文本框上用 JavaScript 实现的解决方案。是否有一个插件已经可以做到这一点?我该如何实现这个?
编辑:感谢您的所有答案,但我想使文本区域/输入类型文本不可编辑但同时可选择。在文本框中按 Ctrl + A 不起作用。是否可以获取更改后的值和旧值并进行比较,如果值不同则返回 false,但在所有其他情况下返回 true,以便 Ctrl + A、Shift + end 等组合有效吗?
最佳答案
类似这样的事情:
<textarea onkeydown="javascript:return false;"></textarea>
就可以了。 (jsfiddle)
如果您愿意,您也可以在运行时执行此操作:
<textarea class="readonly"></textarea>
与
$(".readonly").keydown(function() false);
onkeydown
回调捕获击键事件并使用 return false;
取消它们。
根据您想要执行的操作,您可能希望阻止其他类型的事件,因为例如仍然可以使用鼠标更改内容。
您的回调函数可以根据击键类型接受或取消事件。例如,仅启用 ctrl-a 和 ctrl-c(使用 jQuery):
function keydown(e) {
if(!e.ctrlKey) return false; // Cancel non ctrl-modified keystrokes
if(e.keyCode == 65) return true;// 65 = 'a'
if(e.keyCode == 67) return true;// 67 = 'c'
return false;
}
关于javascript - 如何编写允许不可编辑文本框的 JavaScript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6997917/