我需要找到一种方法来阻止用户在textarea中选择文本.
目标是创建一个用于在textarea中输入文本的自定义键盘.我希望用户能够单击textarea来设置插入位置(现在已经在工作).但是,我不希望用户能够选择插入文本的某些部分,或者至少应该没有这种可视指示.
我已经尝试过一些东西,比如下面的CSS,但没有成功.
目标是创建一个用于在textarea中输入文本的自定义键盘.我希望用户能够单击textarea来设置插入位置(现在已经在工作).但是,我不希望用户能够选择插入文本的某些部分,或者至少应该没有这种可视指示.
我已经尝试过一些东西,比如下面的CSS,但没有成功.
textarea { -moz-user-select: none; -webkit-user-select: none; -khtml-user-select: none; user-select: none; }
解决方案可以是CSS和/或JavaScript,只需在Google Chrome中使用即可.
谢谢!
更新:
禁用textarea对我不起作用.正如我所提到的,我希望用户能够通过单击位置将插入符号放置在某些位置.如果我要禁用textarea,这个功能就会丢失.
@OPUS:该解决方案不适用于textareas.
@andi:没错
@Pointy:可以阻止键盘事件.用户不必使用键盘输入文本,而是使用我在页面上提供的自定义键盘.将其与屏幕键盘进行比较.
@downvoters:这个问题有什么不好的?
解决方法
“只读”属性和“用户选择”属性的组合有效.
第二个规则禁用select上突出显示的边框,这是一种视觉选择.
“不可选择”的属性似乎是Opera / IE特有的.
风格:
.noselect { cursor: default; -webkit-user-select: none; -webkit-touch-callout: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; -o-user-select: none; } .noselect:focus { outline: none; }
标记:
<textarea class="noselect" readonly="readonly" unselectable="on"></textarea>
只读可能比禁用更合适(在点击事件时,仍然可以使用JS切换).