@vlzkonopatov

Как установить курсор внутри текста Textarea?

У меня есть элемент модальное окно а в нём:
<textarea name="code" id="id_code" style="width: 100%;" rows="16" data-ng-model="current_static_page_code"></textarea>
Я уму присваиваю значение по умолчанию вот так :
$scope.current_static_page_code = '<body style="margin: 0; width: 100%; height: 100%;">\n\n</body>';
Как мне сделать что-бы курсор автоматически устанавливался между \n
  • Вопрос задан
  • 2559 просмотров
Решения вопроса 1
@vlzkonopatov Автор вопроса
Если кому-то понадобиться то вот.
$scope.caretPos = 6;

$scope.setSelectionRange = function(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();
    }
};

$scope.setCaretToPos = function() {
     $scope.setSelectionRange(document.getElementById("myTextArea"), $scope.caretPos, $scope.caretPos);
};


Caret Positon :<br/>
<input type="number" ng-model="caretPos"/><br/><br/>
<textarea id="myTextArea">
This is sample text for testing purpose
</textarea><br/><br/>
<button ng-click="setCaretToPos()">Set Caret Position</button>


Демо: demo.sodhanalibrary.com/angular/cursor_position_us...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
NeiroNx
@NeiroNx
Программист
https://developer.mozilla.org/en-US/docs/Web/API/H...
курсор устанавливается так, если длина 2 символа.
$("#id_code").selectionStart = 1;
$("#id_code").selectionEnd = 1;


А если вы используете плагин, который заменяет textarea, то данный метод не сработает. У плагина есть для этого свои функции.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 17:06
15000 руб./за проект
19 апр. 2024, в 16:53
1000 руб./за проект
19 апр. 2024, в 16:45
5000 руб./за проект