表單結構與驗證

紅框只是一個訊號,表單還需要告訴人怎麼完成。

先讓人知道每一欄要填什麼,再交代規則;出錯時在欄位旁說明,送出失敗後再用摘要帶人回到待修位置。

閱讀順序

表單不是把元件排好就結束,資訊要在正確時機出現。

  1. 先認識欄位每個控制項先有 Label;必填規則也在輸入前看得到。
  2. 再補充規則Helper Text 說格式、上限與用途,不讓使用者邊填邊猜。
  3. 群組保留關係相關選項用 Fieldset 與 Legend 說清楚共同問題。
  4. 錯誤分兩層回饋Inline Validation 與 Error Message 管欄位;送出失敗再用 Summary 管整份表單。

責任比較

每一種文字都在回答不同問題。

點選元件名稱可查看完整介紹、可操作 Demo、AI Prompt 與驗收清單。

元件什麼時候出現?負責的範圍常見誤用
Label|欄位標籤欄位一出現就要有單一控制項的用途Placeholder 會消失,不能代替它。
Helper Text|輔助文字輸入前格式、限制或用途說明規則,但不取代欄位名稱。
Required Indicator|必填標記輸入前單一欄位或整組必填規則不能只靠紅色或一顆未解釋的星號。
Error Message|錯誤訊息規則被違反時單一欄位或單一群組的修正方式紅框沒有告訴人要怎麼改。
Fieldset|欄位群組一組選項出現時共同回答一題的控制項只是排在一起的 div 沒有群組語意。
Legend|群組標題與 Fieldset 一起出現群組共同問題與規則不該移到群組外當純視覺標題。
Validation Summary|驗證摘要送出失敗後整份表單還有哪些問題摘要不能取代每個欄位旁的錯誤。
Inline Validation|即時驗證輸入後或離開欄位後目前欄位可立即判斷的規則初次進入空欄位就報錯,會打斷輸入。

先做這個流程

新增成員表單:欄位旁修正,送出後再給全局地圖。

一個 Email 格式錯誤,先在欄位旁說明格式與範例;若姓名和 Email 都沒填,再把兩件事列到 Validation Summary,讓使用者不用在長表單中來回找。

欄位附近的錯誤是修正說明;摘要是定位地圖。兩者一起出現時,才不會讓人按了送出卻不知道下一步。

操作驗證摘要 Demo