Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как передать текст из одной textarea в другую? (https://javascript.ru/forum/misc/67564-kak-peredat-tekst-iz-odnojj-textarea-v-druguyu.html)

Zmicer 24.02.2017 15:48

Как передать текст из одной textarea в другую?
 
Здравствуйте! Пытаюсь выполнить небольшую задачку на JS. Надо из textarea получить в массив значения (для последующей замены некоторых значений массива, но это понятно как сделать). А затем вывести этот массив в другую textarea с сохранением всех пробелов и с разделением по строкам. Взять удалось. Подскажите, как все эти значения передать в другую textarea? Заранее спасибо за ответ!

Собственно код:
Код:

<!DOCTYPE HTML>
<html>
<head>
        <title>example</title>
</head>
<body>
<textarea style="width: 300px; height: 150px;">
</textarea><br/>
<input type="button" value="click me">
<script>
var textarea = document.querySelector('textarea'),button = document.querySelector('input');

button.onclick = function ()
{
var myList = textarea.value.split('\n');
}

</script>


<br/>
<textarea style="width: 300px; height: 150px;">
</textarea><br/>

</body>
[/html]


ruslan_mart 24.02.2017 16:21

document.getElementsByTagName('textarea')[1].value = '...';


А по хорошему, дать id, name или class каждой textarea, и получать их по этих по одному из этих атрибутов.

Paguo-86PK 24.02.2017 16:33

<script>
function Xerox(new_line) {
	var src = document.getElementById("Source").value;
	var res = document.getElementById("Receiver");
	var myList = src.split(new_line || /\r?\n/);

	res.value = myList.join("\r\n");
}
</script>
<body>
<textarea id=Source rows=12 cols=40>First line;
Line #2

End of text.</textarea><br />
<input type='button' value='click me' onclick='Xerox(/\r?\n/)' /><br />
<textarea id=Receiver rows=12 cols=40></textarea>
</body>

Zmicer 24.02.2017 16:53

Спасибо, работает что надо!
А что означает \r? ?

Paguo-86PK 24.02.2017 17:03

Рудимeнт прошлого...
В давних браузерах (IE в частности), как и терминале (DOS-сессии) это унаследовалось от первых принтеров (вспомните пишущие машинки: писатель сначала возвращает каретку в начало, а потом прокручивает лист дальше на строчку).
Тем самым, \r - вернуть каретку, \n - новая строка.
Мои скрипты часто не работали, потому что Opera, IE и Chrome по-разному разделяли строки (в IE - \r\n, в Chrome - просто \n).
Выражение /\r?\n/ означает или \n, или \r\n.

P.S.: Это у меня используется везде для устойчивости к "рудиментам":yes:

ruslan_mart 24.02.2017 17:29

Тогда уж лучше

split(/[\n\r\f]+/)

Paguo-86PK 24.02.2017 21:22

Цитата:

Сообщение от Ruslan_xDD (Сообщение 445285)
Тогда уж лучше

split(/[\n\r\f]+/)

Нo, так писать нельзя, если я не ошибаюсь:blink:
Переход на новую строку - \r\n, тогда как от [\r\n\f]+ будет беспорядочное разделение строк (десять пустых строк могут приняться за одну).
Писал сотни скриптов и могу гарантировать за своё.:blink:
Но, в Вашем - сомневаюсь. На практике нужно проверить...
<script>
function Xerox(new_line) {
	var src = document.getElementById("Source").value;
	var res = document.getElementById("Receiver");
	var myList = src.split(new_line || /\r?\n/);

	res.value = myList.join("\r\n");
}
</script>
<body>
<textarea id=Source rows=12 cols=40>First line;
Line #2

End of text.</textarea><br />
<input type='button' value='click me' onclick='Xerox(new RegExp(document.getElementById("splitter").value))' />
for split by <input id=splitter type=text value='' /><br />
<input type=button value='use /\r?\n/' onclick='Xerox(/\r?\n/)' />
<input type=button value='use /\n/' onclick='Xerox(/\n/)' />
<input type=button value='use /[\r\n\f]+/' onclick='Xerox(/[\r\n\f]+/)' /><br />
<textarea id=Receiver rows=12 cols=40></textarea>
</body>

P.S.: Кстaти, я уважаю ваш опыт и профессионализм.:thanks:
Но, осмеюсь заметить, что строчка имеет "запах" иронии.
Да, в рамках современного браузера такая защита от рудиментов и дураков может и излишняя.
Но, если этот самый "новичок" вскоре займётся написанием чего-то серъёзного, например обработкой БД с низкоуровневой обработкой файлов в php, на более-менее "старых" файлах скрипт может сильно промахнуться:agree:
Zmicer, не бойтесь. От моего /\r?\n/ хуже не станет. Напротив, избавит от многих недоразумений везде (cgi, php и т.д.). Лучше перестраховываться от всяких граблей;)

Zmicer 27.02.2017 11:26

Спасибо, очень помогли Ваши ответы!


Часовой пояс GMT +3, время: 17:18.