新增類型
H5新增了一些不同類型的字段:
<input type="email">
<input type="url">
<input type="number">
<input type="range">
-
<input type="datetime">
等等隅居,這些還沒有得到瀏覽器的廣泛支持,因此了解即可柑司。
基本約束能力
表單的驗證約束除了type類型支持的內(nèi)置驗證規(guī)則外踊餐,還有自定義驗證規(guī)則,分分類:
-
必填:只要出現(xiàn)required屬性,就表示該字段必須有值崭闲,否則無法提交表單肋联。該屬性適用于<input>、<textarea>刁俭、<select>
<input type="text" required>
不是在所有瀏覽器中都支持這個屬性橄仍,可以用特性檢測來確定是否支持:
let requiredSuppoted = 'required' in document.createElement('input');
min、max牍戚、step屬性適用于type值為number侮繁、range、datetime的字段如孝,為輸入值提供了約束宪哩。
pattern屬性:H5新增屬性,該屬性的值是一個正則表達式第晰,用戶輸入的文本必須與之匹配锁孟。
關(guān)于檢測字段有效性的方法和屬性
方法:checkValidity()
字段和表單都可以調(diào)用該方法,以檢測字段的值是否有效但荤,如果有效返回true罗岖,否則返回false。
屬性:validity
這個屬性的值是一個對象腹躁,包含了字段為什么無效或有效的信息:
- customError
- patternMismatch
- rangeOverflow
- rangeUnderflow
- stepMismatch
- tooLong
- typeMismatch
- valueMissing
- valid ------ 如果以上所有屬性的值都是false桑包,則這個屬性就是true
利用validity的屬性可以自定義用戶輸入無效時的提示信息。
禁止驗證
如果不想驗證表單就提交纺非,可以在form上添加一個novalidate
屬性
<form method="" action="" novalidate>
...
</form>
如果一個表單有多個提交按鈕(有這樣的需求嗎哑了?)可以指定某個按鈕提交時不做驗證,給該按鈕添加一個formnovalidate
屬性即可:
<input type="submit" id="sub1" formnovalidate value="不驗證提交">
<input type="submit" id="sub2" value="提交">