表單

表單是一組允許使用者將資料提交到伺服器的輸入欄位,並支援提供欄位驗證錯誤。


安裝

以上命令僅用於單獨安裝。如果已全域安裝 @nextui-org/react ,您可以跳過此步驟。

匯入

用法

結構

一個 Form 是一個輸入元素和提交/重置按鈕的容器,支援驗證訊息。當使用 aria-labelaria-labelledby 標記時,它會成為輔助技術可導航的 表單地標

事件

當使用者按下 Enter 鍵或按下提交按鈕提交表單時,將觸發 onSubmit 事件。當使用者按下重置按鈕時,將觸發 onReset 事件。

驗證

Form 支援具有可自訂 UI、自訂驗證函數和伺服器端驗證的原生 HTML 約束驗證。伺服器端驗證錯誤可以透過 validationErrors 屬性作為將欄位名稱對應到錯誤訊息的物件提供,當使用者修改欄位時,這些錯誤訊息會被清除。

請參閱表單指南,以瞭解有關表單驗證(包括客戶端驗證)以及與其他框架和程式庫整合的更多資訊。

驗證行為

Form 的驗證預設使用 ARIA 屬性,但可以透過設定 validationBehavior="native" 來切換為原生 HTML 驗證。ARIA 驗證會即時顯示錯誤,而不會阻止表單提交。這可以在表單或欄位層級設定。

無障礙性

  • 使用原生 HTML <form> 元素建構,並支援 ARIA 標籤來建立一個表單地標
  • 完整支援瀏覽器功能,例如表單自動填寫。
  • 支援原生 HTML 約束驗證,具有可自訂的 UI、自訂驗證函數、即時驗證和伺服器端驗證錯誤。

API

表單屬性

屬性類型預設值
children
ReactNode
validationBehavior
'native' | 'aria'
"aria"
validationErrors
Record<string, string | string[]>
action
string | FormHTMLAttributes<HTMLFormElement>['action']
encType
'application/x-www-form-urlencoded' | 'multipart/form-data' | 'text/plain'
method
'get' | 'post' | 'dialog'
target
'_blank' | '_self' | '_parent' | '_top'
autoComplete
'off' | 'on'
autoCapitalize
'off' | 'none' | 'on' | 'sentences' | 'words' | 'characters'
className
string
style
CSSProperties