Браузер независимый readonly?
Есть ли способ в HTML, JavaScript или jQuery сделать элемент input "только для чтения", т.е.
- пользователь может его прочитать
- пользователь может скопировать его содержимое в буфер обмена
- пользователь не может его изменить.
который будет работать во всех браузерах? Я знаю, что есть атрибут "readonly", но он не поддерживается во всех браузерах.
Я не спрашиваю о аспектах безопасности, просто об использовании пользователями.
Ответы
Ответ 1
если вы используете jQuery (как вы помещаете в тег), это кросс-браузер:
$(...your input ...).attr('readonly','readonly');
edit: from http://www.w3schools.com/tags/att_input_readonly.asp
Атрибут readonly поддерживается в все основные браузеры.
Ответ 2
Один из способов - подделать его:
<p class="fake_input">The readonly Value</p>
<input type="hidden" name="real_input" value="The readonly Value" />
И если вы хотите, чтобы это выглядело как заблокированное поле ввода, вы могли бы стилизовать его и т.д.
Просто помните, что люди могут менять скрытые входы волей-неволей.
Ответ 3
Хотя атрибут readOnly нечувствителен к регистру в html, он должен быть записан "readOnly" в js. Он работает, когда он напрямую назначается во всех браузерах из IE6 и включает IE6, но способ, которым вы его назначаете, может быть специфичным для браузера.
element.setAttribute('readOnly', 'readOnly') не работает в старых браузерах,
но element.readOnly = 'readOnly' (или любое правдивое значение) работает x-браузер.