ARX2
@ARX2
Web-разработчик | Священник

Как в div contentEditable сделать перенос при сочетании клавиш ctrl + enter?

Добрый день. Не знаю как сделать перенос строки при сочетании клавиш ctrl + enter в div contentEditable.

<div contentEditable="true" hidefocus="true" id="comment"></div>

$('#comment').keydown(function (e) {
                              if(e.ctrlKey && e.keyCode == 13){
                                $('#comment').append('<br>');
                              }
                 });


Мой код переносит на другую строку, только курсор остается на своем месте, а должен тоже перенестись и вообще быть в конце сообщения.
Как это осуществить?
  • Вопрос задан
  • 1426 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
Все правильно вы сделали, только нужно переместить курсор.

Для этого можно вставить br не строкой, а предварительно создав элемент. И используя ссылку на этот элемент и range, переместить курсор.
https://developer.mozilla.org/ru/docs/Web/API/Rang...
И потом collapse



Доработаный пример
  • без jQuery
  • br вставляется не в конце, а в том месте где курсор
  • выделенный фрагмент удаляется


Все то-же самое, но один обработчик на весь документ, и срабатывает на любых contenteditable
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы