Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Не преобразуется \n вставляемый в textarea


Автор: Innuendo108 28.3.2010, 11:25
Нужно в textare'ю вставлять определенный текст
Есть выпадающий список, по нажатию на элемент которого,  в текстарею должно пойти его значение.

в цикле это выглядит вот так:
Код

    list[i].addEventListener ("click", function () { d.getElementById("comment").value = this.value; }, true);

Элемент списка выглядит вот так:
Код

<option value="a\nbc\nd">Элемент2</option>


и текст так и вписывается, \n - не преобразуется.

Главное что если явно указать d.getElementById("comment").value = "a\nbc\nd", то вставится как надо

Автор: Innuendo108 28.3.2010, 13:53
Проблема решена.
Решил так:

1) вместо "\n"  в атрибуте option'a писал "***";

2) в скрипте изменил так:
Код

list[i].addEventListener ("click", function () {
        d.getElementById("comment").value = this.value.replace(/\*\*\*/gi,"\n"); 
    }, true);    

Автор: IDVsbruck 28.3.2010, 14:46
Дикость какая ...
Для таких сложных случаев делается сопоставление простых value сложным строковым данным (или массивом, или еще удобнее объектом - типа, ассоциативным массивом, чтобы было удобно обращаться).

Автор: Innuendo108 28.3.2010, 17:26
когда у тебя уже есть .html-овский файл, в котором создано 5 таких <select>-ов, и в каждом по 20-30 <option'ов в которые в атрибуте value задано значение, то гораздо быстрее написать так, чем создавать массив, и "копи-пастить" данные...

Автор: bars80080 28.3.2010, 22:17
Цитата(Innuendo108 @  28.3.2010,  17:26 Найти цитируемый пост)
чем создавать массив, и "копи-пастить" данные... 

а почему не переделать столь ущербный хтмл-овский файл?

Автор: skyboy 28.3.2010, 23:18
Цитата(Innuendo108 @  28.3.2010,  10:25 Найти цитируемый пост)
<option value="a\nbc\nd">Элемент2</option>

а вот был бы у тебя такой HTML:
Код

<option value="a
bc
d">Элемент2</option>

и все могло бы http://jsfiddle.net/qCpVQ/.
но и в таком случае http://jsfiddle.net/JNb2C/ предварительную замену текста "\n" на перенос строки:
Код

textarea.value = option.value(/\\n/g,"\n");

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)