使用jQuery将文本插入textarea

时间:2011-02-28 18:51:05

标签: jquery

我有一个textarea和一个除了它之外的几个变量的列表。我需要能够单击变量并将其放入文本区域。

<div id="var1" class="insert">Name</div>
<div id="var2" class="insert">Street address</div>

<textarea id="targetText">some text already here</textarea>

插入后我需要它看起来像:

<textarea id="targetText">some text already here {Street address}</textarea>

我在考虑使用点击功能:

$(".insert").click(function () {
        // some magic to add to textarea
});

3 个答案:

答案 0 :(得分:5)

如果要在光标处插入变量,则需要使用selectionStart,如下所示:

$('.insert').click(function(e){
    var tav    = $('#targetText').val(),
        strPos = $('#targetText')[0].selectionStart;
        front  = (tav).substring(0,strPos),
        back   = (tav).substring(strPos,tav.length); 

    $('#targetText').val(front + '{' + $(this).text() + '}' + back);
});

请参阅小提琴:http://jsfiddle.net/rKmVL/1/

注意:这可能无法在IE中正常工作。

答案 1 :(得分:3)

试试这个:

$(".insert").click(function () {
    var insertText = $(this).text();
       $('#targetText').append(" "+insertText);
});

演示: http://jsfiddle.net/Wkz6U/

答案 2 :(得分:2)

$("#targetText").val($("#targetText").val() + "{" + $(this).text() + "}");
感觉神奇。