为HTML表单input元素添加disabled、checked属性的正确方式是什么?
结论
你提到的disabled、checked、selected这类都属于HTML的布尔属性,你所说的两种写法在现代HTML标准下均符合规范,功能完全等效,没有本质区别。
规范说明
- 布尔属性的核心规则是:属性的存在本身就代表真值,只要该属性出现在元素标签上,无论是否赋值、赋值内容是什么,对应的功能都会生效。比如你哪怕写
disabled="false",只要标签上有disabled属性,对应表单控件还是会被禁用;只有完全移除该属性,才代表关闭对应功能。 - 两种写法的差异仅来自语法场景要求:
- 直接写
<option disabled>的简写形式是HTML原生支持的最简写法,也是官方文档示例中最常用的风格,代码更简洁、可读性更强,原生HTML开发优先推荐使用。 disabled="disabled"的全写形式最初是为了兼容XHTML的严格语法要求,XHTML要求所有属性必须显式赋值,所以当时要求必须按该格式书写。现在如果你的项目不需要兼容XHTML,完全可以不用这种写法。
- 直接写
- 近年的HTML规范没有变更布尔属性的相关定义,官方也没有强制要求必须使用某一种写法,实际开发中只要保证项目内代码风格统一即可。如果你使用的是JSX、TSX这类类XML语法的前端框架,需要按框架语法要求写为
disabled={布尔值}的绑定形式。
内容的提问来源于stack exchange,提问作者Real Noob
相关产品推荐
相关产品推荐

