Как сохранить разрывы строк в текстовой области в jQuery? - PullRequest
2 голосов
/ 02 февраля 2011

Я знаю, что мой вопрос очень похож на этот: Функция jQuery text () теряет разрывы строк в IE , но мои потребности немного отличаются.

У меня есть textarea намоя страница, которая имеет текстовую строку шаблона для ввода пользователем.(Это позволяет им написать сообщение, используя% NAME% в качестве заполнителя для имени.)

После того, как пользователь заканчивает «шаблон», я помещаю его во вторую текстовую область, которая фактически заменяет% NAME% накакое бы имя не использовалось.Я рассмотрел эту часть функции, и она отлично работает.

Вторая часть отлично работает и в большинстве браузеров.

Однако в Internet Explorer разрыв строки отпервая текстовая область не сохранилась до второй.Так, например, если пользователь ввел в первое поле:

Hi %NAME%,
How are you?

И имя для замены текста было «Зак», второе поле будет отображаться как:

Hi Zak,How are you?

Мой код для ввода текста во второе поле:

var inviteTemplate=$('#invitationTemplate').text();
inviteTemplate=inviteTemplate.replace(/%NAME%/g,name);
$('#invitationText').html(inviteTemplate);

Я предполагаю, что проблема заключается в использовании .text() для получения содержимого текстовой области.Можно ли как-нибудь сделать так, чтобы IE сохранил разрывы строк во второй текстовой области?

Ответы [ 2 ]

8 голосов
/ 02 февраля 2011

Вы читаете данные как текст и пишете их как HTML. Вы пытались заменить символы новой строки тегами HTML BR? например,

inviteTemplate = inviteTemplate.replace(/\n/g, '<br>');

Я почти уверен, что будет делать то, что вы хотите.

3 голосов
/ 02 февраля 2011

Я могу подтвердить, что в бета-версии IE9 вы можете переносить текст из одного элемента TEXTAREA в другой элемент TEXTAREA с сохранением разрывов строк.

Демонстрационная версия: http://jsfiddle.net/LWjP6/1/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...