表單驗證失敗出現閃動
當表單驗證不通過的時候,通常會給出一定的提示。
本章節也來分享一個提示效果,比如當文字框輸入內容的格式不通過的時候會出現抖動效果。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> * { margin: 0; padding: 0; } .main { width: 600px; background: #fff; margin: 0 auto; padding: 20px 0; border: solid #ddd; border-width: 0 1px; min-height: 800px; } input.box { width: 240px; border: 1px solid #ddd; height: 26px; line-height: 26px; font-weight: 900; color: #999; display: block; background: #fff; text-align: left; margin: 20px auto; } input.red { border: 1px solid #d00; background: #ffe9e8; color: #d00; } </style> <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script> <script> function shake(ele, cls, times) { var i = 0; var t = false; var o = ele.attr("class") + " "; var c = ""; var times = times || 2; if (t) return; t = setInterval(function () { i++; c = i % 2 ? o + cls : o; ele.attr("class", c); if (i == times) { clearInterval(t); ele.removeClass(cls); } }, 200); }; $(function () { $("#mail").blur(function () { if (!/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/.test($(this).val())) { shake($(this), "red", 8); } }); }); </script> </head> <body> <div class="main"> <input class="box" type="text" id="mail"/> </div> </body> </html>
上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。
一.程式碼註釋:
(1).function shake(ele, cls, times) ,實現元素的抖動效果,ele規定要抖動的元素,cls規定一個樣式類,times規定抖動次數。
(2).var i = 0,宣告一個變數並賦初值為0,這是一個標識,後面會用到。
(3).var t = false,宣告一個變數並賦初值為false,用來儲存定時器函式的標識。
(4).var o = ele.attr("class") + " ",獲取元素的class屬性值,並且在後面新增一個空格,為再新增一個樣式類做準備,比如class="a b"這種形式。
(5).var c = "",宣告變數並賦值為空,用來儲存樣式類字串。
(6).var times = times || 2,如果傳遞times引數,那麼就使用times,否則使用預設值2。
(7).if (t) return,如果不為false,那麼就直接跳出函式。
(8).t = setInterval(function () {},200),一個定時器函式的執行。
(9).i++,自增。
(10).c = i % 2 ? o + cls : o,如果i為偶數,那麼樣式類不包括red,否則包括。
(11).ele.attr("class", c),設定元素的class樣式類。
(12).if (i == times) {
clearInterval(t);
ele.removeClass(cls);
},如果達到抖動的次數,那麼就停止定時器的執行,並且恢復原來的樣式。
(13).$(function () {}),當文件結構完全載入完畢再去執行函式的程式碼。
(14).$("#mail").blur(function () {}),為指定元素註冊blur事件處理函式。
(15).if (!/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/.test($(this).val())) {
shake($(this), "red", 3);
},如果輸入的內容不符合郵箱格式,那麼就進行抖動。
二.相關閱讀:
(1).attr()方法參閱jQuery attr()一章節。
(2).setInterval()方法參閱JavaScript setInterval()一章節。
(3).clearInterval()方法參閱JavaScript clearInterval()一章節。
(4).removeClass()方法參閱jQuery removeClass()一章節。
相關文章
- PbootCMS出現登入失敗,表單提交校驗失敗等情況怎麼辦?boot
- iview表單驗證問題 Select驗證必填失敗,以及表單物件巢狀陣列驗證方法View物件巢狀陣列
- 出現“登入失敗,表單提交校驗失敗”,請檢查伺服器環境伺服器
- Laravel 解決 validate 驗證 Ajax 表單請求驗證失敗報 422 錯誤Laravel
- 解決 Ajax 表單請求驗證失敗報 422 錯誤
- 申請DigiCert SSL證書出現DNS驗證失敗怎麼辦DNS
- 表單登入失敗左右晃動
- PBOOTCMS後臺出現“登入失敗:表單提交校驗失敗,重新整理後重試!”等情況怎麼辦?boot
- vagrant啟動身份驗證失敗的解決方式
- 純CSS實現表單驗證CSS
- Laravel POST 請求 API 介面,使用自定義表單驗證,驗證失敗跳轉回首頁的問題記錄LaravelAPI
- 表單驗證自定義格式輸出
- Token驗證失敗的解決方法
- PbootCMS後臺“登入失敗:表單提交校驗失敗,請重新整理後重試”boot
- beego自動建表失敗Go
- 利用jQuery實現表單驗證功能jQuery
- JavaScript 表單驗證JavaScript
- Laravel 表單驗證Laravel
- javascript表單驗證JavaScript
- bootstrap表單驗證boot
- bootstrapValidator 表單驗證boot
- antd 表單驗證
- selenium結合tenacity的retry實現驗證碼失敗重試
- 實現elementUI表單的全域性驗證UI
- 阿里雲滑塊驗證失敗解決方案阿里
- vue+elementUI實現動態增加表單項並新增驗證VueUI
- 記錄 openssl 證書驗證失敗的詭異問題
- 輸入表單驗證
- 路由表單驗證路由
- 表單required 必需驗證UI
- HTML 表單驗證概述HTML
- 表單資料驗證
- 表單驗證 regex:pattern
- win10連線遠端桌面失敗提示“出現身份驗證錯誤”怎麼解決Win10
- 自定義Spring Security的身份驗證失敗處理Spring
- 微信token驗證失敗的幾種情況
- 簡單幾步實現滑動驗證碼(後端驗證)後端
- vue表單驗證你真的會了嗎?元件之表單驗證(form)validateVue元件ORM