Как передать текст из одной textarea в другую?
Здравствуйте! Пытаюсь выполнить небольшую задачку на JS. Надо из textarea получить в массив значения (для последующей замены некоторых значений массива, но это понятно как сделать). А затем вывести этот массив в другую textarea с сохранением всех пробелов и с разделением по строкам. Взять удалось. Подскажите, как все эти значения передать в другую textarea? Заранее спасибо за ответ!
Собственно код: Код:
<!DOCTYPE HTML> |
document.getElementsByTagName('textarea')[1].value = '...'; А по хорошему, дать id, name или class каждой textarea, и получать их по этих по одному из этих атрибутов. |
<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> |
Спасибо, работает что надо!
А что означает \r? ? |
Рудимeнт прошлого...
В давних браузерах (IE в частности), как и терминале (DOS-сессии) это унаследовалось от первых принтеров (вспомните пишущие машинки: писатель сначала возвращает каретку в начало, а потом прокручивает лист дальше на строчку). Тем самым, \r - вернуть каретку, \n - новая строка. Мои скрипты часто не работали, потому что Opera, IE и Chrome по-разному разделяли строки (в IE - \r\n, в Chrome - просто \n). Выражение /\r?\n/ означает или \n, или \r\n. P.S.: Это у меня используется везде для устойчивости к "рудиментам":yes: |
Тогда уж лучше
split(/[\n\r\f]+/) |
Цитата:
Переход на новую строку - \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 и т.д.). Лучше перестраховываться от всяких граблей;) |
Спасибо, очень помогли Ваши ответы!
|
Часовой пояс GMT +3, время: 09:35. |