обновить textarea
ситуация такая, есть кнопка, которая в textarea помещает текст. Это можно сделать двумя способами .innerHTML и .value
Но, value заменяет значки на esc-символы, потому не подходит. С innerHTML всё нормально, но если хотя бы одну буковку отредактировать в поле textarea, то свойство innerHTML уже не хочет заносить новое значение в поле textarea. Как будто кнопка перестала работать. Отладка показывает, что всё нормально. Что можете посоветовать? Есть ли какой-то метод обновить содержимое поля textarea? |
всё верно. innerHTML, насколько знаю, только в IE способен изменять значение поля. не предназначен он для этого, ибо innerHTML — работает с DOM, а тут всё такие изменяется значение атрибута value. Поэтому и надо использовать .value.
а как быть со значками, это уже другой вопрос... например, http://world-blog.ru/2562 |
innerHTML как раз работает и заносит в <textarea> то что надо (в разных браузерах!)
проблема в том, что если что-то отредактировать в этом поле, то уже перестаёт туда заносить. |
Цитата:
|
вот вам простенький пример:
<html> <head> <title>adf</title> <body> <textarea>a</textarea><br> <input type="button" value="ok" onclick="cl()"> </body> </html> <script> function cl() { a = document.body.getElementsByTagName('TEXTAREA'); a[0].innerHTML += 'a'; }; </script> кнопка будет добавлять букву "а" каждый раз, когда вы на неё нажмёте. Но если вы удалите хоть одну буковку, кнопка перестанет работать. |
придумал интересный способ использования одновременно и value и innerHTML
a[0].value += '<'; a[0].innerHTML = a[0].value; вот так всё будет работать. Даже если a[0].value += '<'; но... после редактирования, будут почему-то ползти < |
ну всё, кажись обдурил:
function cl() { a = document.body.getElementsByTagName('TEXTAREA'); b = document.createElement('TEXTAREA'); b.innerHTML = '<'; a[0].value += b.value; }; то есть, создаю невидимый textarea (который уже нельзя будет редактировать, а значит он будет работать). В него загоняю что угодно (оно уже будет без esc-символов благодаря свойству innerHTML). |
Часовой пояс GMT +3, время: 21:50. |