2010-12-31 15 views
3

HTMLテキストボックスのコンテンツを完全に選択するようにしています。テキストボックス内のすべてのテキストを選択する強力な方法

私はコンポーネントにonfocus="this.select()"を置く単純な解決法を知っていますが、ユーザーがダブルクリックすると選択が失われ、クロムのようなブラウザではそれほどうまく動作しないので、これは良い解決策ではありません入力フォームに戻ります。

Googleで検索したところ、良い解決策が見つからない場合、ほとんどの提案はこの単純な解決策です。

テキストボックス内の選択が一度変更されないようにしたい場合は、AdSenseからコードを取得するときにAdSenseを使用した場合など、可能であればテキストボックスの内容を編集できないようにしてください選択は決して変更されず、テキストボックス内のコードを変更することはできません。

解決方法はありますか。

答えて

3

私はそれがここにそれが必要な方法を、仕事を得るためにティムダウンにより、コードを変更し、最終的です他の人のためのコード(で大文字にすることを確認してくださいreadOnly)。

<script type="text/javascript"> 
    function selectAll(id) { 
     var textBox = document.getElementById(id); 
     textBox.select(); 
     textBox.readOnly = true; 
     textBox.onmouseup = function() { 
      textBox.select(); 
      return false; 
     }; 
     textBox.onmousedown = function() { 
      textBox.select(); 
      return false; 
     }; 
    }; 
</script> 
0
<html> 
<body> 
<script> 
function getElement(elemname) 
{ 
if (document.getElementById) 
    return document.getElementById(elemname); 
else if (document.all) 
    return document.all[elemname]; 
return 0; 
} 
function lockingSelect() 
{ 
ta = getElement("mytext"); 
ta.select(); 
ta.readonly = true; 

} 
</script> 


<textarea id = "mytext"></textarea> 

<br> 
<input type=button onclick="lockingSelect();" value="lock"/> 
</body> 

</html> 
6

テキストボックスを読み取り専用にしたいと思うように聞こえます。しかし、私は、ユーザーが選択を変更できないようにするのは悪い考えです。それはユーザーにとって混乱し、不便なので、実装していません。以下は、すべてのブラウザで焦点を当てたときに入力のコンテンツを選択し、入力は読み取り専用です:

<input type="text" id="foo" readonly value="Some text"> 

<script type="text/javascript"> 
    var textBox = document.getElementById("foo"); 
    textBox.onfocus = function() { 
     textBox.select(); 

     // Work around Chrome's little problem 
     textBox.onmouseup = function() { 
      // Prevent further mouseup intervention 
      textBox.onmouseup = null; 
      return false; 
     }; 
    }; 
</script> 
+0

これはうまくいきましたが、クイックダブルクリックでなかった場合でも、2回目のクリックで選択を元に戻していました。 –

+0

@Emil:実際には、これはあなたの解決策よりも優れていると思います。私はこれと同じように実装するように注意しました。ユーザーが選択を一切変更しないようにするのは混乱し過ぎると思います。ユーザーは、Webページから好きなものを選択してコピーできると期待しています。 –

+0

Tim、ウェブページのトラッキングコードのように修正してはいけないものをコピーしていることがあるので、この機能を制限するのがポイントです。そして、誤ってコードを修正したり、すべてを選択したりしないと、機能しません。 –