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とテキストエリアにフォーカスされますが、テキストエリアカーソルは最後の位置にあり、最後のカーソル文字 + 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 に答える