最简单禁用表单控件是直接添加 disabled 布尔属性,存在即生效;js 应统一用 el.disabled = true/false 控制,避免混用 setattribute;fieldset disabled 可批量禁用子表单元素,但不作用于自定义组件、shadow dom 或 portal 渲染内容;option disabled 仅禁用下拉项,不影响整个 select。

直接写 disabled 属性最简单
HTML 里禁用表单控件,第一反应就是加 disabled 属性。它是个布尔属性,存在即生效,不用赋值:
<input type="text" disabled><select disabled><option>选我</option></select><button disabled>提交</button><textarea disabled></textarea>
注意:disabled="false" 或 disabled="" 都没用——只要属性存在,就禁用。浏览器会自动灰化、阻止聚焦、跳过表单提交。
JS 动态控制必须用 .disabled = true/false
别碰 setAttribute('disabled', '') 或 removeAttribute('disabled'),容易状态错位。统一走 DOM 属性赋值:
- 禁用:
el.disabled = true - 启用:
el.disabled = false - 判断:
if (el.disabled) { ... }
混用会导致“看起来能点,但点不动”:比如先用 setAttribute 加了属性,再用 el.disabled = false,DOM 属性还在,浏览器仍以属性为准。原生表单元素只认这个布尔值。
批量禁用用
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










