中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

HTML5實戰應用:如何讓表單驗證更友好

發布時間:2020-06-22 00:57:23 來源:網絡 閱讀:532 作者:Web前端師 欄目:移動開發

HTML5實戰應用:如何讓表單驗證更友好


HTML5表單驗證給前端人員帶來了便利,但是在用戶體驗上存在一些缺陷,默認的提示對用戶很不友好,無法準確的獲取想要的信息。好在大牛們在接口設計的時候提供了setCustomValidilty方法可以自定義提示信息。這是一個好消息,但也存在一些弊端,需要讓開人員做額外的一些處理才達到真正想要的目的。


接下來通過以下示例來闡述方法的應用。


未調用setCustomValidity)方法!DOCTYPE html>  


 html


 hea


     ata charset="utf-8  


     titleform test/title>  


 /head  


 body  


     form name="test action="" method="post>  


        input type="text" required pattern="^\d{4[        DISCUZ_CODE_21        ]quot; placeholder="請輸入代碼" >  


         button type="submit">Check/button>  


     /form>  


 /body>  


 /html> 


復制代碼執行結果:


A:未輸入數據


B:不匹配


這兩個結果都匹配了。但是不匹配這里的提示方案案與預想的不符合。


通過調用setCustomValidity方法來優化提示文案!DOCTYPE html>  


 html>  


 head>  


     mata charset="utf-8">  


     title>form test/title>  


 /head>  


 body>  


     form name="test" action="." method="post">  


         input type="text" required pattern="^\d{4}[        DISCUZ_CODE_22        ]quo; placeholder="請輸入代碼" >  


         button type="submit">Check/button>  


     /form>  


 script type="text/javascript">  


     document.querySelector"input").setCustomValidity("請輸入4位數字的代碼");  


 /script>  


 /body>  


/html> 復制代碼執行結果:


A:為空


B:不合法


C:合法


從三個操作來看,調用了setCustomValidity方法后,原生的表單驗證羅輯都返回false了。悲劇。


再看看接口屬性的變化


調用之前:


A)


B)


C)


調用之后:


A)


B)


C)


從上面的截圖可以看到validationMessage沒清空,valueMissing和patternMismatch都已經驗證通了。


總結一下:


從面上可以看出,驗證通過與否除了跟validity接口下的屬性相關外,還跟validationMessage是否有值有關系。只有當validity接口下的屬性(customError除外)都為false并且validationMessage為空時才算驗證通過。


優化后的代碼:!DOCTYPE html>  


 html>  


 head>  


     mata charset="utf-8">  


     title>form test/title>  


 /head>      


 body>  


     form name="test" action="." method="post">  


         input type="text" required pattern="^\d{4}[        DISCUZ_CODE_23        ]quot; oninput="out(this)" placeholder="請輸入代碼" >  


         button type="submit">Check/button>  


     /form>  


 script type="text/javascript">  


 function out(i){  


     var v=i.validity;  


     if(true===v.valueMessing){  


         i.setCustomValidity("請填寫些字段");  


     }else{  


         if(true===v.patternMismatch){  


             i.setCustomValidity("請輸入4位數字的代碼");  


         }else{  


             i.setCustomValidity("");  


         }  


     }  


 }  


 /script>  


 /body>  


 /html> 


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

揭阳市| 淮阳县| 江陵县| 新建县| 彰武县| 鹤峰县| 尼玛县| 孟村| 昭觉县| 襄汾县| 山东| 理塘县| 吉水县| 静海县| 亚东县| 泗洪县| 昌吉市| 皮山县| 登封市| 克东县| 弋阳县| 朝阳区| 土默特右旗| 唐海县| 格尔木市| 安溪县| 淮南市| 离岛区| 三江| 石景山区| 马公市| 蒙自县| 囊谦县| 青海省| 道孚县| 茌平县| 叙永县| 日喀则市| 景谷| 理塘县| 永川市|