HTML-Attribut: readonly
Das Boolesche readonly
Attribut, wenn es vorhanden ist, macht das Element nicht veränderbar, was bedeutet, dass der Benutzer das Steuerelement nicht bearbeiten kann.
Probieren Sie es aus
<label for="firstName">First Name:</label>
<input id="firstName" name="firstName" type="text" value="Adam" />
<label for="age">Age:</label>
<input id="age" name="age" type="number" value="42" readonly />
<label for="hobbies">Hobbies:</label>
<textarea id="hobbies" name="hobbies" readonly>Baseball</textarea>
label {
display: block;
margin-top: 1em;
}
input:read-only,
textarea:read-only {
background-color: silver;
}
Übersicht
Wenn das readonly
Attribut bei einem Eingabeelement angegeben ist, nimmt das Element, da der Benutzer die Eingabe nicht bearbeiten kann, nicht an der Eingabewertüberprüfung teil.
Das readonly
Attribut wird von den text
, search
, url
, tel
, email
, password
, date
, month
, week
, time
, datetime-local
, und number
<input>
Typen und den <textarea>
Formularelementen unterstützt. Wenn bei einem dieser Eingabetypen und Elemente vorhanden, wird die :read-only
Pseudoklasse übereinstimmend sein. Ist das Attribut nicht enthalten, wird die :read-write
Pseudoklasse übereinstimmend sein.
Das Attribut wird nicht von <select>
oder nicht veränderbaren Eingabetypen unterstützt oder ist nicht relevant, wie zum Beispiel checkbox
und radio
oder kann definitionsgemäß nicht mit einem Wert starten, wie der file
Eingabetyp. range
und color
, da beide Standardwerte haben. Es wird auch nicht von hidden
unterstützt, da nicht erwartet werden kann, dass ein Benutzer ein Formular ausfüllt, das versteckt ist. Auch wird es nicht von irgendeinem der Button-Typen, inklusive image
, unterstützt.
Hinweis:
Nur Textsteuerungen können schreibgeschützt gemacht werden, da es für andere Steuerungen (wie Kontrollkästchen und Schaltflächen) keinen nützlichen Unterschied zwischen schreibgeschützt und deaktiviert gibt, also gilt das readonly
Attribut nicht.
Wenn ein Eingabeelement das readonly
Attribut hat, gilt auch die :read-only
Pseudoklasse dafür. Umgekehrt entsprechen Eingaben, die das readonly
Attribut unterstützen, aber das Attribut nicht gesetzt haben, der :read-write
Pseudoklasse.
Attributinteraktionen
Der Unterschied zwischen disabled
und readonly
ist, dass schreibgeschützte Steuerungen immer noch funktionieren und fokussierbar sind, während deaktivierte Steuerungen keinen Fokus empfangen und nicht mit dem Formular übermittelt werden und im Allgemeinen nicht als Steuerungen funktionieren, bis sie aktiviert werden.
Weil ein schreibgeschütztes Feld seinen Wert nicht durch eine Benutzerinteraktion ändern kann, hat required
keine Auswirkungen auf Eingaben, bei denen das readonly
Attribut ebenfalls angegeben ist.
Der einzige Weg, den Wert des readonly Attributs dynamisch zu ändern, ist über ein Skript.
Hinweis:
Das required
Attribut ist bei Eingaben mit dem readonly
Attribut nicht zulässig.
Benutzbarkeit
Browser zeigen das readonly
Attribut an.
Eingabewertüberprüfung
Wenn das Element schreibgeschützt ist, kann der Wert des Elements vom Benutzer nicht aktualisiert werden und nimmt nicht an der Eingabewertüberprüfung teil.
Beispiel
HTML
<div class="group">
<input type="text" value="Some value" readonly="readonly" id="text" />
<label for="text">Text box</label>
</div>
<div class="group">
<input type="date" value="2020-01-01" readonly="readonly" id="date" />
<label for="date">Date</label>
</div>
<div class="group">
<input type="email" value="Some value" readonly="readonly" id="email" />
<label for="email">Email</label>
</div>
<div class="group">
<input type="password" value="Some value" readonly="readonly" id="pwd" />
<label for="pwd">Password</label>
</div>
<div class="group">
<textarea readonly="readonly" id="ta">Some value</textarea>
<label for="ta">Message</label>
</div>
Ergebnis
Spezifikationen
Specification |
---|
HTML # attr-input-readonly |
HTML # attr-textarea-readonly |
Browser-Kompatibilität
html.elements.input.readonly
BCD tables only load in the browser
html.elements.textarea.readonly
BCD tables only load in the browser