2
    var currentposition = 10; // after 10 characters
    var text = ":)";

    $(".insert").click(function () {
           // Need help here
    });

<textarea id="messagebox">Example text for the code</textarea>

一定量の文字 (テキストエリアにテキストがあります) の後にテキストエリアにテキストを挿入するにはどうすればよいですか (この場合は 10)。テキストエリアにテキストがまったくない場合もあります。その場合、現在の位置は 0 になります。

このコードの目的は、現在のカーソル位置にスマイリーを入力することです。

4

1 に答える 1

4

次のようなものを使用することをお勧めします.substring()

var currentposition = 10;
var text = ":)";

$('textarea').val($('textarea').val().substring(0,currentposition) + text + 
    $('textarea').val().substring (currentposition));

Jsfiddle の例

更新:カーソルをテキストの最後に配置したい場合は、テキストエリアの値を変更する.focus()にメソッドを呼び出すことができます:

$('textarea').focus().val($('textarea').val().substring(0,position) + ' :) ' + 
    $('textarea').val().substring (position));

ただし、すべてのブラウザーで動作するかどうかはわかりません (IE に問題がある可能性があります)。

于 2013-04-25T16:42:50.807 に答える