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

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

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

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

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

 

目錄
1.背景介紹
2.知識剖析
3.常見問題
4.解決方案
5.編碼實戰
6.擴展思考
7.參考文獻
8.更多討論dom

1.背景介紹
JavaScript 可在數據被送往服務器前對 HTML 表單中的這些輸入數據進行驗證。以減輕後臺數據傳送壓力,提升數據傳送的質量和效率。函數

clipboard.png

2.知識剖析
如何使用表單驗證性能

原生js:獲取input內容,if/switch判斷,配合正則dom操做等實現目標編碼

優勢:靈活,減小加載時間;缺點:代碼量大spa

js第三方插件:例如Bootstrap Validator.net

優勢:代碼量少;缺點:須要加載第三方js,樣式比較固定

3.常見問題
表單驗證有哪幾種方式

1.實時判斷

2.離開焦點

3.提交時驗證

4.解決方案
5.代碼實戰
JS表單驗證
<p>是否填寫以及長度限制</p>
<form name="a" onsubmit="return test()"><!--onsubmit表示表單提交時執行一段js代碼,當該事件觸發的函數中返回false時,表單就不會被提交,不能掉了return,不然表單永遠會提交。-->
    <input type="text" name="b" placeholder="不超過5個字符"  onkeyup="keyUp()" >
    

    <input type="submit" name="Submit" value="check">
</form>1234567

 
  function test() {
        if (document.a.b.value == null || document.a.b.value == "") {
            console.log("請輸入字符");
            return false;
        }
        if (document.a.b.value.length > 5) {
            console.log("不能超過5個字符!");
            return false;
        }
    }
function onBlur() {//失去焦點
    if (document.a.b.value == null || document.a.b.value == "") {
        console.log("請輸入字符");
        return false;
    }
    if (document.a.b.value.length > 5) {
        console.log("不能超過5個字符!");
        return false;
    }
}

function keyUp() {//按鍵後判斷
    if (document.a.b.value == null || document.a.b.value == "") {
        console.log("請輸入字符");
        return false;
    }
    if (document.a.b.value.length > 5) {
        console.log("不能超過5個字符!");
        return false;
    }

}1234567891011121314151617181920212223242526272829303132
6.擴展思考
他們的優缺點
提交時驗證:

優勢:性能上更好;缺點:假如輸入項過多的話,會影響用戶體驗

適合登錄帳號時檢測輸入內容是否合法

onBlur:

優勢:用戶體驗好;缺點:必須鼠標點擊別處後才能知道結果

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

onKeyup:

優勢:反應迅速,體驗佳;缺點:用在某些地方可能看起來很蠢或影響性能,好比正在輸入驗證碼或者檢測是否重名等

適用於檢測數據類型,好比註冊頁面的密碼項

7 .參考文獻
        <p>https://www.oschina.net/trans...;/p>1
8.更多討論
還有那些常見的判斷方式?

Q:如今通常企業用的是什麼類型的表單驗證?

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

Q:防點擊如何實現的,他有什麼做用?

A:在angular中ng-disable爲true的時候就會沒法點擊,因此咱們須要與表單驗證綁定起來再作一個取反判斷便可,它能夠更加人性化,使用戶免於多餘操做

Q:爲何要永novalidate

是在本身編寫表單驗證插件的時候(如jquery.validate,angular),爲了不和默認的表單驗證衝突,

相關文章
相關標籤/搜索