Я вижу проблему в IE7 и IE8 (но не в других браузерах) с текстовой областью, когда я динамически изменяю ее атрибут «только для чтения». Текстовая область первоначально определяется как доступная только для чтения, и когда пользователь щелкает внутри текстового поля, я устанавливаю для readOnly значение false. На этом этапе, если я набираю какие-либо нормальные символы, они не отображаются - на самом деле текстовое поле действует так, как будто оно все еще доступно только для чтения (т. Е. Клавиши со стрелками перемещаются, нажатие кнопки «Удалить» приводит к переходу на предыдущую страницу и т. Д.). )
Если я снова нажму внутри текстовой области, набор текста будет работать нормально.
Вот фрагмент кода, который иллюстрирует проблему:
<html>
<head></head>
<body>
<textarea id="txt1" onclick="document.getElementById('txt1').readOnly = false" readonly=true>Click in here and try typing.</textarea>
</body>
</html>
Я пробовал разные типы учений. Я попытался вручную вызвать focus () и click () в обработчике кликов. Я попытался установить таймер для установки флага readOnly. Я пытался использовать setAttribute () / removeAttribute (). Нет радости с любым из этих подходов.
Обновление
Я закончил тем, что использовал contentEditable, но только для IE - я все еще использую readOnly для FF и Safari / Chrome, потому что contentEditable, похоже, не работает для этих браузеров. Мне тоже придется перепроверить IE9.