Атрибут 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
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet
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

Дивіться також