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
載入中…