Новая линия в Textarea будет преобразована в - PullRequest
26 голосов
/ 14 мая 2011

Здесь много тем о преобразовании br /> или сохранении новых строк на разных языках, но не так много о текстовой области.

У меня есть этот скрипт:

var boxText = "";
$("textarea.BoxText").live('dblclick', function () {
    boxText = $(this).val().replace(/ /g, "<br/>");
  $(this).replaceWith( '<div class="BoxText">' + $(this).val() + '</div>' );

});
$("div.BoxText").live('dblclick', function () {
  $(this).replaceWith( '<textarea form="HTML" class="BoxText">' + boxText + '</textarea>' );
});

У меня естьэлемент textarea, редактируемый.Когда пользователь дважды щелкает по нему, он превращается в div.Тем не менее, в div, новые строки не сохраняются.Я хотел бы преобразовать только новые строки вВ настоящее время все пространства конвертируются.У меня есть второй скрипт, который преобразует его обратно в textarea, отсюда и переменная для хранения строки.Мне понадобитсяЭто также будет преобразовано в новые строки.

Это может показаться излишним, но у меня есть веская причина для этого.

1 Ответ

79 голосов
/ 14 мая 2011

Это заменит разрывы строк на HTML-теги разрывов.Различные комбинации должны охватывать разные браузеры / системы и интерпретировать разрывы строк.

$(this).val().replace(/\r\n|\r|\n/g,"<br />")

Это вернет его к новым строкам, в том числе о том, как разные браузеры интерпретируют innerHTML.

boxText.replace(/<br\s?\/?>/g,"\n");
...