2016-01-29 2 views
0

Мой вопрос прост, но я не могу понять.jQuery - курсор позиции ПОСЛЕ вставки текста в textarea

Я вставляю текст в текстовое поле, используя метод, который я нашел около here. Этот метод, вставьте текст в фактическую позицию курсора, это нормально.

Но я хочу поместить курсор между вставленным текстом. Текст, который я буду вводить: ****, __, ~~~~ и [](http://) Я знаю, это всего лишь некоторые случайные символы. Но это для ереги. Я хочу поместить курсор между вставленными вставками, на **here**, _here_ и ~~HERE~~, последний, который мне нужно установить между первым [], это [HERE](http://).

Это не должно быть так сложно, но я просто не знаю, как это сделать. Любая помощь?

ответ

0

использовать следующие функции:

Рабочий пример Caret Test

function setSelectionRange(input, selectionStart, selectionEnd) { 
    if (input.setSelectionRange) { 
    input.focus(); 
    input.setSelectionRange(selectionStart, selectionEnd); 
    } else if (input.createTextRange) { 
    var range = input.createTextRange(); 
    range.collapse(true); 
    range.moveEnd('character', selectionEnd); 
    range.moveStart('character', selectionStart); 
    range.select(); 
    } 
} 

function setCaretToPos(input, pos) { 
    setSelectionRange(input, pos, pos); 
} 

$("#addStarsCode").click(function() { 
    var my_i_val = $("#my_textarea").val(); 

    $("#my_textarea").val(my_i_val + '****'); 
    setCaretToPos($("#my_textarea")[0], $("#my_textarea").val().length-2); 
}); 
<textarea id=my_textarea name=my_textarea> I Am A Default Text</textarea><br> 
<button id=addStarsCode>Add ****</button> 
Смежные вопросы