Ответ Ajax с символами новой строки для textarea - PullRequest
0 голосов
/ 25 января 2011

У меня проблема с ajax-запросом, который должен возвращать с сервера строку с символом новой строки (\ n) для заполнения текстовой области.

Когда я делаю следующее только с javascript, он работает и показывает 2 строки в текстовой области:

function fillTextArea(){
document.getElementById('myTextArea').innerHTML = "Line1\nLine2";
}

Но если я получу значение с сервера, используя ajax, \ n будет обрабатываться как все остальные символы строки, и будет только одна строка

function fillTextArea() {
new Ajax.Request("/myUrl/....",{
    asynchronous:true,
    evalScripts:true,
    onSuccess:function(transport){
        document.getElementById('myTextArea').innerHTML = transport.responseText;
    }
});
}

Кто-нибудь знает, как обращаться с символами новой строки в тексте ответа на запрос ajax?

Ответы [ 2 ]

1 голос
/ 25 января 2011

@ Tomalak: Функция Ajax возвращает строку с \ n, как "Line1 \ nLine2", но текстовая область просто показывает одну строку со всей строкой, поэтому \ n просто отображается в текстовой области как текст вместо новая строка.

Я нашел небольшой обходной путь:

Если моя ajax-функция возвращает «Line1NEWLINELine2» и заменяет «NEWLINE» на \ n, это работает, поэтому функция выглядит так:

function fillTextArea() {
new Ajax.Request("/myUrl/....",{
    asynchronous:true,
    evalScripts:true,
    onSuccess:function(transport){
        var responseText = transport.responseText;
        var adjustedResponseText = responseText.replace(/NEWLINE/g, '\n');

        document.getElementById('myTextArea').value= adjustedResponseText;
    }
});
}

Я действительно не уверен, почему это имеет значение, если значение берется из запроса ajax или просто как статическая строка в функции javascript. Но это способ решить эту проблему.

Любые лучшие предложения приветствуются: -)

1 голос
/ 25 января 2011

Не используйте .innerHTML = "Line1\nLine2".Вместо этого используйте .value = "Line1\nLine2".

value для значений формы.Вы не устанавливаете здесь содержимое HTML.

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