Атрибут HTML – readonly
Булів атрибут readonly
(лише для зчитування), коли присутній, робить елемент незмінним, що означає, що користувач не може редагувати його.
Спробуйте його в дії
Огляд
Якщо атрибут readonly
заданий на елементі поля, то, оскільки користувач не може редагувати поле, такий елемент не бере участі в перевірці обмежень.
Атрибут readonly
підтримується типами <input>
text, search, url, tel, email, password, date, month, week, time, datetime-local і number, а також контрольним елементом форм <textarea>
. Коли він присутній на будь-якому з них, спрацьовує збіг з псевдокласом :read-only
. Якщо його немає, то спрацьовує збіг з псевдокласом :read-write
.
Цей атрибут не підтримується та не стосується <select>
і типів полів, які й так не можуть змінюватися, наприклад, checkbox і radio, або за визначенням не можуть зразу з'являтися зі значенням, наприклад, file. range і color, оскільки обидва ці типи мають усталені значення. Також не підтримується на hidden, адже не можна очікувати, що користувач заповнить поле, що є прихованим. Він також не підтримується на будь-якому з типів кнопок, включно з image
.
[!NOTE] Лише текстові контрольні елементи можуть стати лише для зчитування, адже для решти контрольних елементів (як то полів для галочки та кнопок) немає змістовної відмінності між станами лише для зчитування та вимкненості, тому атрибут
readonly
не застосовується.
Коли поле має атрибут readonly
, то до нього також застосовується псевдоклас :read-only
. І навпаки, поля, які підтримують атрибут readonly
, але не мають його, відповідають псевдокласу :read-write
.
Взаємодія між атрибутами
Різниця між disabled
і readonly
полягає в тому, що поля лише для зчитування все одно можуть працювати та є фокусовними, натомість вимкнені поля не можуть отримати фокус та не подаються разом із формою та, як правило, не працюють як контрольні елементи, поки не будуть увімкнені.
У зв'язку з тим, що поле лише для зчитування не може бути змінено шляхом взаємодії з ним користувача, атрибут required
не має жодної дії на поля, на котрих також заданий атрибут readonly
.
Єдиний спосіб динамічно змінити значення атрибута readonly
— це за допомогою сценарію.
[!NOTE] Атрибут
required
не дозволяється на полях, на яких заданий атрибутreadonly
.
Використовність
Браузери показують атрибут readonly
.
Валідація обмежень
Якщо елемент – лише для зчитування, то значення такого елемента не може бути оновлено користувачем та не бере участі у валідації обмежень.
Приклад
HTML
<div class="group">
<input type="text" value="Якесь значення" readonly="readonly" id="text" />
<label for="text">Текстове поле</label>
</div>
<div class="group">
<input type="date" value="2020-01-01" readonly="readonly" id="date" />
<label for="date">Дата</label>
</div>
<div class="group">
<input type="email" value="Якесь значення" readonly="readonly" id="email" />
<label for="email">Електронна пошта</label>
</div>
<div class="group">
<input type="password" value="Якесь значення" readonly="readonly" id="pwd" />
<label for="pwd">Пароль</label>
</div>
<div class="group">
<textarea readonly="readonly" id="ta">Якесь значення</textarea>
<label for="ta">Повідомлення</label>
</div>
Результат
Специфікації
Сумісність із браузерами
desktop | mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
readonly
|
Chrome Full support 1 | Edge Full support 12 | Firefox Full support 1 | Internet Explorer Full support 6 | Opera Full support 12.1 | Safari Full support 4 | WebView Android Full support 1 | Chrome Android Full support 18 | Firefox for Android Full support 4 | Opera Android Full support 12.1 | Safari on iOS Full support 3 | Samsung Internet Full support 1.0 |