disabled属性让按钮真正失效:阻止点击、提交、聚焦及提供屏幕阅读器语义;正确写法为或;js中用btn.disabled=true/false控制,禁用时勿仅用setattribute。

disabled 属性让按钮真正失效,不只是视觉置灰
加 disabled 不只是让按钮变灰——它会直接阻止点击事件、不触发 onclick、不提交表单、不获取焦点,且对屏幕阅读器有语义提示。单纯用 CSS 改颜色或加 pointer-events: none 是假禁用,用户仍可能通过回车、空格或辅助工具触发。
怎么写才生效:HTML 中直接加 disabled 属性
必须是布尔属性,写法只有两种正确形式:
-
<button disabled>提交</button>(推荐,简洁) -
<button disabled>提交</button>(兼容老浏览器,但冗余)
错误写法:<button disabled></button> 或 <button disabled></button> ——只要属性存在,无论值是什么,浏览器都当 true 处理。
JavaScript 动态控制时别漏掉 removeAttribute
启用/禁用切换不能只靠 setAttribute,否则容易残留无效状态:
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
- 禁用:
btn.setAttribute('disabled', 'disabled')或更简洁的btn.disabled = true - 启用:
btn.removeAttribute('disabled')或btn.disabled = false
注意:btn.disabled = true 是最可靠方式;用 setAttribute 后若不配 removeAttribute,而只设 disabled="",按钮依然禁用。
样式微调要兼顾可访问性
默认置灰不够明显,尤其对色弱用户。建议补充 CSS:
button:disabled {
opacity: 0.6;
cursor: not-allowed;
background-color: #ccc;
}
但别仅靠颜色区分状态——必须保留 disabled 属性本身,否则 WCAG 不合规,键盘用户仍能按空格触发。
复杂点在于:表单里多个按钮联动时,禁用逻辑常被硬编码在 JS 里,却忘了同步更新 disabled 属性,导致 DOM 状态和视觉不一致。检查时多看元素面板里有没有那个属性,而不是只盯样式。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










