Как задать позицию курсора в textarea на JavaScript?

Вопрос

Как можно задать позицию курсора в текстовом поле (textarea) на JavaScript? Я заполняю текстовое поле каким то текстом, и хочу, чтобы курсор редактирования сдвигался на несколько символов вправо, когда пользователь кликает по тексту. Код должен выглядеть примерно так:

$('#input').focus(function() {
  $(this).setCursorPosition(4);
});

В этом примере 4 - это позиция курсора, то есть на 4 символа вправо, ну примерно вот-так: abcd|efg.
В Java есть похожая функция setCaretPosition, а есть ли что-то подобное в JavaScript?


Ответ №1

Поместить курсор в заданную позицию textarea можно с помощью двух функций:

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

Использовать так:

setCaretToPos(document.getElementById("inputid"), 4);

Пример


В этом примере рассмотрено помещение курсора в заданную позицию в textarea. Если Вам необходимо получить позицию курсора, смотрите этот вопрос.

3 комментария

  • WernerSaw:

    Соберем для Вас по интернет клиентские базы данных для Вашего Бизнеса Узнайте подробнее по Email: prodawez392@gmail.com Тел +79139230330(wiber/whatsapp/telegram) Skype: prodawez390

  • rpavelst:

    Наш сервис предоставляет настоящие лайки на фотографии заказчиков, которые готовы платить за качество.

    Именно для этого мы и набираем удалённых сотрудников, которые будут выполнять работу, то есть ставить лайки и зарабатывать за это деньги.

    Чтобы стать нашим удалённым сотрудником и начать ставить лайки, зарабатывая при этом 45 рублей за 1 поставленный лайк,

    достаточно просто зарегистрироваться на нашем сервисе. > like.zarplatt.ru <

    Вывод заработанных средств ежедневно в течении нескольких минут.

  • Дима:

    Пытался здесь htt://eva-sexshop.ru реализовать данную процедуру…. Ни в какую не хочет работать IE, как в стену лбом…

Добавить комментарий


(обязательно)