2013-10-02 18 views
5

ユーザーがテキストエリア内のテキストを選択できないようにする方法を見つける必要があります。 目的は、テキストエリアにテキストを入力するためのカスタムキーボードを作成することです。私は、ユーザーがテキストエリアをクリックしてキャレットの位置を設定できるようにしたいと考えています。しかし、私は、ユーザーが挿入されたテキストの特定の部分を選択できるようにしたくない、または少なくともこれを視覚的に示す必要はありません。 私はすでに次のようなCSSを試してみましたが、成功しませんでした。テキストエリアのテキスト選択を無効にする

textarea { 
    -moz-user-select: none; 
    -webkit-user-select: none; 
    -khtml-user-select: none; 
    user-select: none; 
} 

解決策は、CSSまたはJavaScriptで行うことができ、Google Chromeでのみ動作する必要があります。 ありがとう!

UPDATE:

私のために動作しませんテキストエリアを無効にします。私が言及したように、ユーザーはその場所をクリックすることで特定の位置にキャレットを置くことができます。私がテキストエリアを無効にすると、この機能は失われます。

@OPUS:このソリューションはテキストエリアでは機能しません。 @Pointi:キーボードイベントをブロックすることができます。ユーザーはキーボードでテキストを入力する必要はありませんが、私がそのページに提供するカスタムキーボードを使用しています。画面上のキーボードと比較してください。 @downvoters:この質問についてはどうして悪いですか?

+0

ない限り、Iこれを間違って読んで、あなたが望むことを無効にしないだろうか? –

+0

http://stackoverflow.com/questions/4712030/disable-text-selection-and-add-exceptions –

+0

テキスト選択を無効にすることは簡単です...ユーザーが特定のポイントにカーソルを置くためにクリックできるようにしながら、テキスト選択を無効にする方法を本当に求めていますか? – andi

答えて

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

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

Firefoxでは効果がありません。 – Pointy

+1

thatsユーザはchromeでしか望んでいないので、moz-user-select:noneを追加することができます。 –

+1

すみません、私はそれを逃してしまっていて、 '-moz-user-select:none'も動作します。私はこれが正しい答えだと思います。 – Pointy

-2

あなたはjavascriptでそれを無効にすることができます

document.getElementById("textarea").disable='true'; 
-3
<textarea disabled="readonly"></textarea> 

は、それが働いているテスト。

+1

OPはテキストエリアを読み取り専用にしたくないので、単に選択機能を無効にしたいだけです。 – Amyth

+0

テキストエリアを無効にすることで、テキストの選択を行うことができます –

+0

@AnkurDhanukaが要素を無効にすると、キーボードイベントが生成されないため、おそらくOPでは機能しません。 – Pointy

7

"readonly"プロパティと "user-select"プロパティの組み合わせが機能します。

第2のルールでは、視覚的な選択の一種である選択時に強調表示された枠線を無効にします。

「選択不可能な」プロパティは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> 

読み取り専用(1まだクリックイベント時に、JSで切り替えることができます)無効よりも適している可能性があります。

-1

それとも、ちょうどこのように、テキストエリア内= "無効" 無効に置くことができますコードの下

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

0

はあなたを助けることができる

JSコード:

$(document).ready(function(){ 
    $('#txtInput').bind("cut copy paste",function(e) { 
     e.preventDefault(); 
    }); 
}); 
関連する問題