Как задать позицию курсора в 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. Если Вам необходимо получить позицию курсора, смотрите этот вопрос.

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

  • WernerSaw:

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

  • rpavelst:

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

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

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

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

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

  • Дима:

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

  • Roberttor:

    Здравствуйте! Вас интересуют клиентские базы данных? Ответ на Email: prodawez400@gmail.com

  • WilliamCramy:

    Easy way to lose weight fast for a week:
    https://sites.google.com/site/weightlossluxury/exercise-as-a-weight-loss-strategy

    Interesting queries:
    buy alli weight loss aid refill
    weight loss breeze review
    lose weight pose nude
    anna bachelor weight loss
    elliptical training plan for weight loss
    weight loss centers las vegas nv
    weight loss plan men over 50
    carb counter for weight loss
    best book for juicing weight loss

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


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