移除disabled属性应使用removeAttribute('disabled')或设置el.disabled = false;setAttribute('disabled', 'false')无效,因disabled是布尔属性,只认存在与否;fieldset需修改其自身disabled才影响子元素。

disabled属性在JS里怎么移除
直接删掉 disabled 属性就行,不是设成 false 或空字符串。浏览器只认“有没有这个属性”,不看它的值是什么。
用 removeAttribute 还是 setAttribute
removeAttribute('disabled') 是最稳妥的做法;setAttribute('disabled', '') 或 setAttribute('disabled', 'false') 都没用——只要属性存在,元素就禁用。
-
el.removeAttribute('disabled'):彻底删掉,推荐 -
el.disabled = false:更简洁,也有效(这是 DOM 属性,不是 HTML 属性) -
el.setAttribute('disabled', 'false'):无效,disabled是布尔属性,值被忽略
为什么 el.disabled = false 有时不生效
常见原因是操作了错误的元素,或者 DOM 还没加载完就执行 JS。另外,如果元素本身是 fieldset,它禁用子控件靠的是自身 disabled,这时候要改 fieldset 的 disabled,而不是里面的 input。
DMap GL地图JSAPI(dmapgl)开发指南。用于编写、审查、调试 DMap 地图 API 代码,涵盖地图初始化、覆盖物渲染、图层管理、事件处理、控件交互等任务。当用户提及 dmap、dmapgl、jsapi‑gl 或相关地图开发需求时自动触发。
- 确保选中的是目标控件本身,不是父容器
- 检查是否在
DOMContentLoaded后执行,或把脚本放</body>前 -
fieldset下的input不响应单独设置disabled = false,得先解禁fieldset
disabled 和 readonly 的区别别搞混
disabled 会让元素不可交互、不提交、灰显;readonly 只禁输入,仍可聚焦、可提交、样式不变。JS 改 readonly 用 el.readOnly = false(注意大小写),别和 disabled 混着用。
立即学习“前端免费学习笔记(深入)”;
-
disabled影响表单提交,readonly不影响 -
input和textarea支持readonly,button、select不支持 -
el.disabled = true和el.setAttribute('disabled', '')效果一样,但前者更快
fieldset 场景,还有把 disabled="false" 当开关的习惯——HTML 里写死的 disabled 属性,光改值根本没用。


















