Thuộc tính readOnly của đối tượng HTMLTextAreaElement cho phép **lấy hoặc đặt** trạng thái chỉ đọc của textarea. Khi true: người dùng **không thể chỉnh sửa** nội dung, nhưng vẫn có thể **focus, chọn, copy**. Giá trị vẫn được **gửi khi submit form** (khác với disabled).
Cú pháp
// Lấy giá trị var isReadOnly = textarea.readOnly; // Đặt giá trị textarea.readOnly = true; // hoặc false
Ví dụ: Bật/tắt chế độ chỉ đọc
<!DOCTYPE html>
<html>
<style>
body { color: #000; background: lightseagreen; height: 100vh; }
.btn { background: #db133a; border: none; height: 2rem; border-radius: 2px; width: 40%; display: block; color: #fff; outline: none; cursor: pointer; margin: 1rem auto; }
<body>
<h1>Demo: textarea.readOnly</h1>
<textarea rows="5" cols="40" name="ghiChu">
Nội dung mẫu: Đây là ghi chú chỉ đọc.
</textarea>
<button onclick="toggleReadOnly()" class="btn">Chuyển đổi ReadOnly</button>
<script>
function toggleReadOnly() {
var ta = document.querySelector("textarea");
ta.readOnly = !ta.readOnly;
console.log("readOnly:", ta.readOnly);
}
</script>
</body>
</html>
Kết quả:
- Ban đầu: Textarea có thể gõ.
- Nhấn nút lần 1:
readOnly = true→ không gõ được, nhưng vẫn chọn/copy được. - Nhấn nút lần 2:
readOnly = false→ gõ được lại.
readOnly vs disabled
| Đặc điểm | readOnly | disabled |
|---|---|---|
| Chỉnh sửa | Không | Không |
| Focus | Có | Không |
| Chọn/Copy | Có | Có (hầu hết trình duyệt) |
| Gửi khi submit | Có | Không |
| CSS pseudo | :read-only |
:disabled |
Khi nào dùng readOnly?
- Hiển thị nội dung từ server (log, mô tả, điều khoản) cho xem/sao chép.
- Trường được tính toán tự động (tổng, mã hash) — không cho sửa nhưng cần submit.
- Quy trình duyệt: xem trước → bật readOnly → cho phép sửa khi nhấn "Chỉnh sửa".
Mẹo: Kết hợp CSS textarea:read-only { background: #f5f5f5; } để gợi ý trực quan.