禁用textarea中的文本选择

时间:2013-10-02 13:56:22

标签: javascript html css textarea

我需要找到一种方法来阻止用户在textarea中选择文本。 目标是创建一个用于在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:这个问题有什么不好的?

6 个答案:

答案 0 :(得分:7)

“readonly”属性和“user-select”属性的组合有效。

第二条规则禁用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切换)。

答案 1 :(得分:4)

<textarea unselectable="on" id="my_textarea"></textarea>

    *.unselectable {
   -webkit-user-select: none;
    }  

答案 2 :(得分:2)

下面的代码可以帮到你     

JS代码:

$(document).ready(function(){
   $('#txtInput').bind("cut copy paste",function(e) {
      e.preventDefault();
   });
});

答案 3 :(得分:-1)

或者您可以在textarea中输入disabled =“disabled”,如下所示:

<textarea disabled="disabled"></textarea>

答案 4 :(得分:-2)

您可以使用javascript禁用它:

document.getElementById("textarea").disable='true';

答案 5 :(得分:-3)

<textarea disabled="readonly"></textarea>

测试它正在运行。