2013-04-25 96 views
2
var currentposition = 10; // after 10 characters 
    var text = ":)"; 

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

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

如何可以插入一個textarea文本一定量的字符後(有在textarea的文本),在這種情況下10.也可以不是在任何文本文本區域,在這種情況下currentposition將爲0.jquery的插入文本到文本區域

此代碼的目的是在當前光標位置處輸入笑臉。

回答

4

我建議使用類似.substring()

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

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

Jsfiddle example

UPDATE:如果你想有定位在文本的末尾光標,你可以嘗試調用.focus()方法之前更改textarea的值:

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

但我不確定它會在所有瀏覽器中工作(IE可能存在問題)

+0

完美,謝謝。 – Jerry 2013-04-25 16:45:12

+0

不是問題的一部分,但也許你知道如何在插入文本之後移動光標,而不是之前。目前,當我連續插入兩個表情符號時,第二個位於第一個位置之前。 – Jerry 2013-04-25 17:12:14

+0

@是的,看我更新的答案... – DarkAjax 2013-04-25 21:17:24