HTML 属性:required
如果存在,布尔属性 required
表示用户必须为输入指定一个值,然后才能提交其所属的表单。
required
属性支持 text
、search
、url
、tel
、email
、password
、date
、month
、week
、time
、datetime-local
、number
、checkbox
、radio
、file
等 <input>
类型,以及 <select>
和 <textarea>
表单控件元素。如果存在于任何这些输入类型和元素上,则 :required
伪类将匹配。如果未包含该属性,则 :optional
伪类将匹配。
该属性不支持或与 range 和 color 输入类型无关,因为两者都有默认值。color
类型默认为 #000000
。range
类型默认为 min
和 max
之间的中点 — 在大多数浏览器中,如果未声明 min
和 max
,则它们分别默认为 0 和 100。required
也不支持 hidden 输入类型 — 用户无法被期望填写隐藏的表单字段。最后,required
也不支持任何按钮输入类型,包括 image。
对于同名的一组 radio 按钮,如果组中的单个 radio 按钮具有 required
属性,则必须选中该组中的一个 radio 按钮,尽管不一定是应用了该属性的那个。为了提高代码维护性,建议在该组的每个同名 radio 按钮中都包含 required
属性,或者都不包含。
对于同名的一组 checkbox 输入类型,只有具有 required
属性的复选框才是必需的。
注意: 设置 aria-required="true"
会告诉屏幕阅读器某个元素(任何元素)是必需的,但这不会影响元素的选填性。
属性交互
由于只读字段无法更改,因此 required
对同时指定了 readonly
属性的输入没有影响。
可用性
包含 required
属性时,请在控件附近提供可见的指示,告知用户该 <input>
、<select>
或 <textarea>
是必需的。此外,使用 :required
伪类定位必需的表单控件,并以某种方式对其进行样式设置以指示它们是必需的。这可以提高视觉用户的可用性。辅助技术应该根据 required 属性告知用户该表单控件是强制性的,但添加 aria-required="true"
也无妨,以防浏览器/屏幕阅读器组合尚未支持 required
。
约束验证
如果元素是必需的且元素的值为空字符串,那么该元素将出现 valueMissing
,并且该元素将匹配 :invalid
伪类。
可访问性考虑
向用户提供指示,告知他们表单控件是必需的。确保信息是多方面的,例如通过文本、颜色、标记和属性,以便所有用户都能理解要求,无论他们是否有色盲、认知差异或是否使用屏幕阅读器。
示例
HTML
<form>
<div class="group">
<input type="text" />
<label>Normal</label>
</div>
<div class="group">
<input type="text" required />
<label>Required</label>
</div>
<input type="submit" />
</form>
结果
规范
规范 |
---|
HTML # attr-input-required |
HTML # attr-select-required |
HTML # attr-textarea-required |
浏览器兼容性
html.elements.input.required
加载中…
html.elements.select.required
加载中…
html.elements.textarea.required
加载中…