2013-04-25 87 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