Last updated: Mar 5, 2024
Reading timeยท3 min
Use the readOnly
property to check if an element is read-only, e.g.
if (element.readOnly) {}
.
The readOnly
property returns true
when the element is read-only,
otherwise false
is returned.
Here is the HTML for the examples.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>bobbyhadz.com</title> </head> <body> <input readonly type="text" id="first_name" name="first_name" value="James" /> <script src="index.js"></script> </body> </html>
And here is the related JavaScript code.
const element = document.getElementById('first_name'); console.log(element.readOnly); // ๐๏ธ true if (element.readOnly) { console.log('โ element is read-only'); } else { console.log('โ๏ธ element is not read-only'); } // โ Set attribute readonly // element.setAttribute('readonly', '') // โ Remove attribute readonly // element.removeAttribute('readonly');
The readOnly
property on an element returns true
if the element is read-only
and false
otherwise.
When the readonly attribute is set on the element, the element is not mutable and cannot be edited by the user.
readOnly
property to check if an element is read-only.Some examples online use the getAttribute()
method on the element, however
boolean attributes like readonly
might not have a value.
const element = document.getElementById('first_name'); // ๐๏ธ returns empty string console.log(element.getAttribute('readonly')); // โ DON'T DO THIS if (element.getAttribute('readonly')) { console.log('โ element is readonly'); } else { console.log('โ๏ธ element is not readonly'); }
readOnly
.The getAttribute
method returns the value of the provided attribute on the
element.
However, it's a best practice to set boolean attributes, such as readonly
,
without a value.
true
.If a boolean attribute is not present, the value of the attribute is considered
to be false
.
Therefore the readonly
attribute could be set without a value on the element
and the getAttribute
method would return a false negative.
If you need to remove the readonly
attribute from an element, use the
removeAttribute()
method.
const element = document.getElementById('first_name'); element.removeAttribute('readonly');
The removeAttribute
method removes the provided attribute from the element.
If you need to set the readonly
attribute on an element, use the
setAttribute()
method.
const element = document.getElementById('first_name'); element.setAttribute('readonly', '');
The method takes the following 2 parameters:
name
- the name of the attribute to be set.value
- the value to assign to the attribute.We provided an empty string as the value for the readonly
attribute because
it's a best practice to set boolean attributes without a value.
You can learn more about the related topics by checking out the following tutorials: