1. 程式人生 > >有哪些常見的驗證表單方式,他們各自的優缺點是什麼?

有哪些常見的驗證表單方式,他們各自的優缺點是什麼?

這裡是修真院前端小課堂,每篇分享文從

【背景介紹】【知識剖析】【常見問題】【解決方案】【編碼實戰】【擴充套件思考】【更多討論】【參考文獻】

八個方面深度解析前端知識/技能,本篇分享的是:

【有哪些常見的驗證表單方式,他們各自的優缺點是什麼?】

大家好,我是IT修真院武漢分院web第17期的學員吳三水,一枚正直純潔善良的web程式設計師。

今天給大家分享一下,修真院官網js(職業)任務十,深度思考中的知識點——有哪些常見的驗證表單方式,他們各自的優缺點是什麼?

 

1.背景介紹

表單驗證是javascript中的高階選項之一。

  表單資料一般都通過瀏覽器端的Javascript 驗證。瀏覽器端的驗證速度快,若有不符合要求的輸入,響應資訊快速的返回給使用者。由於驗證資料不需要提交給伺服器,不會加重伺服器的負載。

 

2.知識剖析

什麼是表單驗證?表單驗證的作用

  訪問任何一個帶登錄檔單的網站,你都會發現,當你提交沒有輸入任何資訊的表單時,註冊頁面都會給你提交一個反饋,它告訴你提交了錯誤的資料,這些資訊可能看起來像下面這樣的:

 

“該欄位是必填的”(該欄位不能留空)

“請輸入你的電話號碼,它的格式是:xxx-xxxx”(它要求你輸入的資料格式為三個數字接一個橫槓,然後再接著是四個數字)

“請輸入一個合法的郵箱地址”(如果你輸入的資料不具有“[email protected]“的郵箱格式)

“你的密碼長度應該是8至30位的,並且至少應該包含一個大寫字母、一個符號以及一個數字”

  這就是表單驗證 —— 當你向 Web 應用提交資料時,應用會校驗你輸入的資料是否是正確的。如果驗證通過,則這些資料可能會被儲存至資料庫中(通常都是這樣的)或者執行下一步操作,如果校驗未通過,則 Web 應用會提示你有錯誤的資料,並且一般都會明確的告訴你錯誤發生在哪裡。表單驗證可以通過許多不同的方式實現。

 

3.常見問題

常見的表單驗證方式

1.輸入時進行實時驗證(.KEYDOWN)

 

2.離開(失去)焦點時驗證(.ONBLUR)

 

3.提交表單時驗證

 

4.解決方案

 

5.程式碼實戰

1.輸入時進行實時驗證

 

 

2.離開(失去)焦點時驗證

 

 

3.是否填寫以及長度限制

 

 

提交

 

 

 

 

6.拓展思考

這些驗證的優缺點各是什麼?

1.輸入時進行實時驗證(.keydown)**

優點: 只要有輸入就會開始進行驗證,隨著輸入的實時給予使用者驗證反饋,反應速度快。

 

缺點:影響一些效能,比如正在輸入驗證碼或者檢測是否重名等,頻繁出現的驗證錯誤影響使用者體驗。

 

適用於檢測資料型別,比如註冊頁面的密碼項

 

2.失去焦點驗證(.onBlur)

優點: 使用者體驗好比第一種要好一點

 

缺點:必須輸入框失去焦點(即滑鼠點選別處,或tab鍵)後才能知道結果

 

常見於輸入驗證碼,註冊等功能

 

3.提交時驗證

優點: 效能上更好,可以降低伺服器壓力

 

缺點:如果輸入項過多的話,使用者體驗會很差

 

適合登陸賬號時檢測輸入內容是否合法

 

7.參考文獻

有哪些常見的驗證表單方式,他們各自的優缺點是什麼?

表單資料校驗

 

8.更多討論

常見問題:

1.一些常見的大型網站用的都是什麼型別的表單驗證?

答:京東是實時驗證,騰訊、阿里、百度用的失去焦點驗證。

2.為什麼會有的Input會無法輸入?

答:它使用了disable這個屬性,它特性是為滿足條件禁用此表單,因此我們可以很靈活的選擇禁用input或者滿足一些特定條件才可以使用input

3.表單驗證有幾種寫法?

答:我們目前比較流行的表單驗證寫法有:

1.js原生寫法:

利用if/switch/或者正則表示式/+DOM操作來進行表單驗證的製作。

 

優點:相比於第三方庫,可以減少載入的js檔案大小,樣式靈活,適用於表單少/格式簡單/對效能需求高的網站。

缺點:程式碼量大,耗時多。

2.第三方外掛

利用js第三方外掛來進行網站的表單驗證

 

優點:全站適用,手工程式碼量少。

缺點:有可能加重伺服器負擔,樣式相對固定

3.HTML5內建的校驗

 

優點:不需要javascript,用自帶的html就可以進行驗證,而且效能好

缺點:不能自定義驗證,也不夠靈活。

 

鳴謝!

 

 

PPT連結 視訊連結

更多內容,可以加入IT交流群565734203與大家一起討論交流

這裡是技能樹·IT修真院:https://www.jnshu.com,初學者轉行到網際網路的聚集地