readonly属性使表单字段只读但可提交,常用于保护数据;与disabled不同,其值可随表单提交且仍可聚焦,适用于input和textarea,可通过JavaScript动态控制。

在HTML表单中,readonly 属性用于指定一个输入字段为只读状态。用户可以看到字段内容但不能修改。这个属性适用于多种表单元素,如 input 和 textarea,常用于展示数据的同时防止意外更改。
readonly属性的基本用法
只需要在输入元素上添加 readonly 属性即可将其设为只读:
也可以配合其他属性一起使用:
ail" value="user@example.com" readonly name="email">对于 textarea 同样适用:
立即学习“前端免费学习笔记(深入)”;
与disabled的区别
很多人容易混淆 readonly 和 disabled,它们有以下关键差异:
- readonly 字段的值会随表单提交,而 disabled 字段的值不会提交
- readonly 元素仍可获得焦点(可通过tab键),disabled 元素通常不可聚焦
- readonly 只适用于有值的元素(如 input、textarea),disabled 可用于所有表单控件(包括按钮、select等)
常见使用场景
readonly 在实际开发中有多个典型用途:
- 显示自动生成的数据,例如订单编号、创建时间等,避免用户误操作
- 在编辑表单中保留原始信息作为参考,比如用户ID或系统计算结果
- 结合JavaScript动态控制:初始只读,满足条件后移除只读允许编辑
- 保护关键配置项,仅在特定权限下才允许修改
通过JavaScript动态控制
可以使用JavaScript添加或移除 readonly 属性:
document.getElementById("myInput").readOnly = true; // 添加只读 document.getElementById("myInput").readOnly = false; // 取消只读这种动态控制适合根据用户操作或权限变化调整字段可编辑性。
基本上就这些。readonly 是一个轻量又实用的属性,合理使用能提升表单的可用性和数据安全性。不复杂但容易忽略细节,特别是和 disabled 的区别,在提交数据时要特别注意。











