disabled属性使表单元素完全不可用且不提交值,readonly仅禁止编辑但可提交值,前者适用于所有表单控件并禁用交互,后者仅用于文本输入框且保留数据提交功能。

在html中,可以通过 disabled 或 readonly 属性来控制表单元素是否可操作。这两个属性适用于不同的场景,使用时需注意区别。
disabled 属性:完全禁用元素
添加 disabled 属性的表单元素将变为不可用状态,用户无法点击、输入或聚焦。同时,该元素的值不会随表单提交。
常见可用于 disabled 的元素包括:
设置方法如下:
<input type="text" disabled> <button disabled>提交</button> <select disabled> <option>选项1</option> </select>
也可以通过 JavaScript 动态控制:
立即学习“前端免费学习笔记(深入)”;
document.getElementById("myInput").disabled = true; // 启用 document.getElementById("myInput").disabled = false;
readonly 属性:仅限制编辑
readonly 属性只适用于可输入文本的元素(如 input 和 textarea),用户可以选中内容但不能修改。与 disabled 不同的是,readonly 元素的值会随表单提交。
使用示例:
<input type="text" value="不可修改" readonly> <textarea readonly>此处内容只读</textarea>
JavaScript 控制方式:
document.getElementById("myText").readOnly = true; // 注意是 readOnly(驼峰) document.getElementById("myText").readOnly = false;
disabled 与 readonly 的主要区别
理解两者的差异有助于正确选择:
- 交互性:disabled 元素完全不可操作;readonly 可聚焦和复制内容
- 表单提交:disabled 元素的值不会提交;readonly 的值会提交
- 样式表现:浏览器通常会给 disabled 元素显示灰色外观
- 适用范围:readonly 仅用于文本类输入框;disabled 可用于更多表单控件
基本上就这些。根据实际需求选择合适的方式即可。需要阻止用户输入且不提交数据用 disabled;允许查看并保留提交内容则用 readonly。不复杂但容易忽略细节。
暂无评论


