2009-11-03 2 views
1

Я делаю веб-приложение. В нем бывают случаи, когда форма может быть «только для чтения». Чтобы имитировать это с помощью HTML, я использую его так, чтобы все (динамически созданные) текстовые поля, содержащие контент, были отключены. Это работает достаточно хорошо, но если текст очень много, и не все это видно сразу (особенно в многострочных боксах), тогда пользователю не будет возможности прокручивать его. Кроме того, другая проблема заключается в невозможности копирования и вставки текста из отключенных текстовых полей.Наличие неотредактируемого, но выбираемого текстового поля

Так что мне нужно это сделать, чтобы вы не могли изменять содержимое в текстовом поле, но вы можете выбрать текст и работать с полосой прокрутки.

Кроме того, я проверяю это в Firefox 3.5, хотя я считаю, IE имеет схожие проблемы. (Нечто совместимое с обоими, пожалуйста)

ответ

5

Использование JS:

< тип ввода = "текст" только для чтения = "только для чтения" OnFocus = "this.blur();" />

Кроме того, возможно вместо прокручиваемого div (overflow: auto; в CSS)?

+0

. Хорошо отметить, что добавить «разное». атрибуты для динамических элементов управления на C#, используйте control.attributes ("readonly", "readonly"); бит onfocus ничего не делает для меня, я думаю, что я сделаю фон красным или что-то, когда они выберут его, чтобы сигнализировать, будут ли они пытаться отредактировать его – Earlz

3

насчет просто используя <div> элемент со статической высотой/шириной и overflow: auto? Вы можете добавить дополнительные стили, чтобы они выглядели как <textarea>, при желании.

+0

Я бы предпочел, чтобы он выглядел как что-то, что пользователь однажды вложил (но теперь заблокирован), а не как абзац текста, который я помещал в – Earlz

2

EDIT: Сделано с проглоченным ярлыком. Теперь это имеет смысл.

это.blur() сделает невозможным выбрать, я думаю.

<input type="text" readonly> 

должен помочь. Совместим с HTML 4 и XHTML 1.0. Не знаю о будущей совместимости (т. Е. HTML 5).