Это не имеет ничего общего с jQuery: разрывы строк в HTML не имеют значения, они просто пробелы (например, пробелы и табуляции).
Чтобы принудительно переводить строки в HTML, вы используете тег <br>
.Таким образом, вы можете изменить
preview.html(input.val());
на
preview.html(input.val().replace(/\r?\n/g, '<br>'));
Обратите внимание, что вы также не экранируете специальные символы HTML (например, <
или &
), и поэтому, если вы наберетеих, ваш вывод может быть неверным.Таким образом, вы могли бы пойти с:
preview.html(input.val().replace(/&/g, '&').replace(/</g, '<').replace(/\r?\n/g, '<br>'));
И, наконец, я бы подключил keypress
, а также keyup
, так что вы видите символы, созданные с помощью повтора ключа (который запускает keypress
, но не keyup
).
Живой пример | источник