2011-08-15 14 views
1

私はテキストエリアを持っています。ユーザーが選択して入力すると、別のものに変更したいと思っています。テキストエリアの一部をハイライト表示して変更するには

$('textarea').html('I live in NY and it\'s a great place to live'); 
$(window).click(function(){ 
     var selection = selectedText(); 
     console.log(selection); 
    }); 

function selectedText() { 
    var ret = ''; 
    if (window.getSelection){ 
     ret = window.getSelection(); 
    } else if (document.getSelection) { 
     ret = document.getSelection(); 
    } else if (document.selection) { 
     ret = document.selection.createRange().text; 
    } 
    return ret; 
} 

私はドン」:例えば、私はテキストエリアを持って、ユーザーはNYのようなものを選択したとき、私はHere's a fiddle but I'm lost

は、私のようなものを持ってNYに変更し、それらの二文字が欲しいですテキストエリアや他の場所からのものかどうかを確認する場所を知っていて、テキストエリアのテキストの特定の部分を変更する方法がわからない場合

+0

「ユーザーがNYのようなものを選択した場合、それらの2文字をNYに変更したい。どうぞお分かりですか? –

答えて

0

テキストの選択には多くのクロスブラウザのニュアンスがあります。これに対処しようとするいくつかのjQueryプラグインがあります。 a-toolsをお勧めします。私は過去にそれを使ってきました。

0

これはあなたに役立つかもしれません:

Finding selection start and end position in a textarea

また、私はちょうどこれをテストし、それはあなたがそれを変更して戻ってテキストエリアに

参考値を割り当てることができるように(それは、選択したテキストを返し作品:http://www.codingforums.com/showpost.php?p=235174&postcount=5

<script type="text/javascript"> 
<!--// 
    function selectedText(input){ 
    if(document.selection && document.selection.createRange().text != ''){ // IS IE 
     alert(document.selection.createRange().text); 
    } 

    else{ // Not IE.. assume Mozilla? 
     var startPos = input.selectionStart; 
     var endPos = input.selectionEnd; 
      alert(input.value.substring(startPos, endPos))  
    } 
} 
//--> 
</script> 
</head> 

<body> 
<form name="reportForm"> 
<textarea name="report">this is a test</textarea> 
<button onclick="selectedText(this.form.report)">Alert Selection</button> 
</form> 
関連する問題