表單required 必需驗證
實際應用中,有些表單是必需的,也就是value值不能為空,否則將會給出提示。
HTML5之前,實現此驗證相對稍稍麻煩一些,極為簡單的需求也需要不少的JavaScript程式碼。
現在已經有了更為簡單的方式可以實現必需性驗證,只需要新增required。
首先看一段HTML5之前必需性驗證程式碼例項:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script> function checkForm(form) { if(form.username.value == "") { alert("使用者名稱不能為空!"); form.username.focus(); return false; } if(form.password.value == "") { alert("密碼不能為空!"); form.password.focus(); return false; } return true; } window.onload = function () { let myForm = document.forms[0]; myForm.onsubmit = function () { return checkForm(this); } } </script> </head> <body> <form action="#" method="post"> 姓名:<input type="text" name="username"/><br/> 密碼:<input type="password" name="password" /><br/> <input type="submit" value="提交表單"/> </form> </body> </html>
上述程式碼中,如果文字框或者密碼框為空,點選提交按鈕則會彈出提示。
簡單實現了元素必需性驗證,所謂必需,就是元素的value屬性值不能為空,或者核取方塊單選按鈕必須被選中。
HTML5新增required屬性可以實現表單元素的必要性驗證,對如下型別元素有效:
(1).input元素。
(2).select元素。
(3).textarea。
下面將上述程式碼進行簡單改造,程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> </head> <body> <form action="#" method="post"> 姓名:<input type="text" name="username" required/><br/> 密碼:<input type="password" name="password" required/><br/> <input type="submit" value="提交表單"/> </form> </body> </html>
上述程式碼將JavaScript程式碼完全刪除,為對應元素他新增required屬性即可。
程式碼執行效果截圖如下:
如果表單元素的value屬性值為空,點選提交按鈕,會彈出報錯提示框。
CSS也提供了:required偽類選擇器可以匹配具有required屬性的表單元素。
本文不再進行演示,具體可以參閱CSS :required 選擇器一章節。
是不是比原來要簡單很多,完全不需要一大堆的JavaScript程式碼,對於textarea多行文字框也是如此。
select下拉選單有一個注意點,所以下面單獨使用程式碼例項進行一下說明:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> </head> <body> <form action="#" method="post"> <select name="one" required> <option value="請選擇">請選擇</option> <option value="1">螞蟻部落一</option> <option value="2">螞蟻部落二</option> <option value="3">螞蟻部落三</option> </select> <input type="submit" value="提交表單"/> </form> <form action="#" method="post"> <select name="two" required> <option value="">請選擇</option> <option value="1">螞蟻部落一</option> <option value="2">螞蟻部落二</option> <option value="3">螞蟻部落三</option> </select> <input type="submit" value="提交表單"/> </form> </body> </html>
首先看預設狀態下表單截圖如下:
程式碼分析如下:
(1).從表面看,兩個select下拉選單都具有值"請選擇"。
(2).但是點選第一個提交按鈕不會彈出提示,點選第二個會彈出為空的提示。
(3).這是因為我們所看到的"請選擇"並不是value屬性值,而是text文字。
(4).第二個下拉選單的第一個option項處於預設選中狀態,但是它的value值為空,所以會彈出提示。
直接使用requied屬性確實非常的簡單,省卻了很多JavaScript程式碼,但是我們也應該看到它的缺點,那就是不夠靈活,提示語言和彈出框樣式都是固定的。如果HTML5新增的驗證功能如此呆板,那就太雞肋了,幸運的是,HTML5同樣提供了可以定製驗證提示資訊的方式。
考慮到文章的篇幅問題,本文不做介紹,關於HTML5定製驗證資訊可以參閱如下幾篇文章:
(1).validity 屬性一章節。
(2).HTML5自定義驗證資訊一章節。
相關文章
- JavaScript 表單驗證JavaScript
- Laravel 表單驗證Laravel
- javascript表單驗證JavaScript
- bootstrap表單驗證boot
- bootstrapValidator 表單驗證boot
- antd 表單驗證
- 輸入表單驗證
- 路由表單驗證路由
- HTML 表單驗證概述HTML
- 表單資料驗證
- 表單驗證 regex:pattern
- vue表單驗證你真的會了嗎?元件之表單驗證(form)validateVue元件ORM
- iview表單驗證問題 Select驗證必填失敗,以及表單物件巢狀陣列驗證方法View物件巢狀陣列
- Lumen 仿 Laravel 表單驗證Laravel
- 表單驗證工具類ValidationUtils
- Layui 自定義表單驗證UI
- jquery.validate 表單驗證jQuery
- 前端表單驗證的目的前端
- 表單驗證教程簡介
- validate表單驗證外掛
- elementui表單驗證 對比兩個表單大小UI
- Laravel 自定義表單驗證-自定義驗證規則Laravel
- 用onsubmit做簡單表單驗證(37)MIT
- 實戰表單驗證學習
- BootstrapBlazor-ValidateForm 表單驗證元件bootBlazorORM元件
- 表單驗證使用擴充套件套件
- jQuery表單驗證效果詳解jQuery
- 純CSS實現表單驗證CSS
- SpringMVC表單驗證器的使用SpringMVC
- JavaScript表單不為空驗證JavaScript
- 表單驗證自定義格式輸出
- vue表單驗證 -- mmj-vue-vdVue
- Laravel 的 表單驗證,多場景Laravel
- 利用jQuery實現表單驗證功能jQuery
- jQuery 表單驗證 學習手記jQuery
- 表單填寫數字型別驗證型別
- JavaScript 表單驗證程式碼例項JavaScript
- vue 實戰表單驗證規則Vue