1

ユーザーがEnterキーを選択して押すと、別のテキストエリアに変更したいテキストエリアがあります。たとえば、テキストエリアがあり、ユーザーがNYのようなものを選択すると、これらの2文字をNYに変更したいとします。

これはフィドルですが、私は迷子になっています

私は次のようなものを持っています:

$('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;
}

テキストエリアからのものか、他の場所からのものかを確認する場所がわかりません。また、テキストエリアのテキストの特定の部分を変更する方法もわかりません。

4

2 に答える 2

0

これはあなたを助けるかもしれません:

テキストエリアでの選択の開始位置と終了位置の検索

また、これをテストしたところ、機能します(選択したテキストが返されるため、変更して値を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>
于 2011-08-15T18:15:40.943 に答える
0

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

于 2011-08-15T18:19:17.910 に答える