关于HTML required属性及Sublime Text 3自动补全的疑问求助
关于HTML
required 属性的困惑解答 嘿,我来帮你把这个问题掰扯清楚!
首先得搞懂HTML里布尔属性的工作逻辑——这就是你遇到问题的核心:
required是一个布尔属性,对于这类属性来说,只要它出现在标签里,不管你给它设什么值,浏览器都会判定它为“生效”状态。- 也就是说,
<input required>、<input required="required">、<input required="false">甚至<input required="abc">,在浏览器眼里都是一回事:这个字段必须填写。 - 只有当你完全移除这个属性时,浏览器才会取消该字段的必填要求。
然后说说讲师提到的“无需设置required="true"或required="false"”:
- 这是完全正确的,因为布尔属性的标准写法就是要么只写属性名(比如
required),要么把属性值设为和属性名一样(比如required="required"),这两种写法效果完全相同。写true或false不仅多余,还会让你误以为值能控制属性的开关,但实际上根本没用。
再说说Sublime Text 3自动补全成required=""的问题:
- 这个其实是正常的,空值的布尔属性和只写属性名的效果一致,不会影响功能。如果你看着空引号不舒服,可以去修改Sublime的HTML补全片段,但从功能角度来说完全没必要纠结这个。
给你举个直观的对比示例:
<!-- 这三种写法都会让字段变成必填 --> <input type="text" required> <input type="text" required=""> <input type="text" required="false"> <!-- 只有这种写法才会取消必填 --> <input type="text">
总结一下:如果想让字段不必填,直接把required整个删掉就行,设置任何值都没用哦!
内容的提问来源于stack exchange,提问作者user9324113
相关产品推荐
相关产品推荐

