0

我的javascript文件中有这部分代码

function insertRespuesta(id, attach)
{
    document.getElementById(attach).value += " #" + id + " ";
    document.getElementById(attach).focus();
}

我的html文件:

<textarea name="textoConversacion" id="textoConversacion" class="mensaje-mensajeria"></textarea>
<a href='#' class='decoracion-link' onClick="insertRespuesta('<?php echo $cada['contador']; ?>','textoConversacion');">#<?php echo $cada['contador']; ?></a>

因此,如果我单击link它,它将专注于 textarea,但 textarea 光标将位于我的最后一个位置,我需要输入最后一个光标字符 + 1。

我更喜欢not using jquery

4

1 回答 1

2

从不使用 jQuery的链接答案中:

function insertRespuesta(id, attach)
{
    var el = document.getElementById(attach)
    if(el != null)
    {
        el.value += " #" + id + " ";
        setCaretPosition(attach, el.value.length);
    }
}

function setCaretPosition(elemId, caretPos) {
    var elem = document.getElementById(elemId);

    if(elem != null) {
        elem.focus();
        if(elem.createTextRange) {
            var range = elem.createTextRange();
            range.move('character', caretPos);
            range.select();
        }
        else if(elem.selectionStart) {
            elem.setSelectionRange(caretPos, caretPos);
        }
    }
}

这是一个工作 jsFiddle

于 2013-06-28T17:01:18.840 回答