[WebAPIs] 表單驗證與取值 form validation and value
keywords: input
, form
HTML Element @ MDN HTML Input element @ MDN
概念
- 一般來說 client-side 的表單驗證因為使用者能夠得到立即的回饋,所以較為 user-friendly。在 client-side 的表單驗證中,又可以分成用 HTML 內建的表單驗證或用 JS 製作表單驗證,前者效能較好,後者較能進行客制化的驗證。
- server-side 的表單驗證雖然對使用者來說較不友善,但卻是必要的,因為前端的東西容易遭到使用者竄改。
- 因此,最常見的是同時使用 client-side 和 server-side 表單驗證。
- 當表單送出驗證有效時,會在表單欄位增加
:valid
的偽元素;若無效則會新增:invalid
的偽元素。
HTML 元素
Input Text
keywords: required
, pattern
, minlength
, maxlength
<!-- specify "minlength" and "maxlength" -->
<input
type="text"
id="username"
name="name"
size="10"
placeholder="Username"
required
minlength="4"
maxlength="8"
/>
<!-- specify a "pattern" -->
<input type="text" id="username" name="name" size="45" required pattern="[a-z]{4,8}" />
<textarea>
一樣有提供maxlength
但是不提供pattern
。
Input Number
keywords: required
, min
, max
, step
<input type="number" id="number" name="amount" value="1" min="1" max="10" step="0.1" />
Input Number 並不支援使用
pattern
@ MDN