专注于textarea到最后的+ 1个字符光标,javascript

时间:2013-06-28 15:46:44

标签: javascript focus hyperlink cursor-position

我在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

1 个答案:

答案 0 :(得分:2)

来自不使用jQuery的linked answer

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);
        }
    }
}

这是working jsFiddle