1. 程式人生 > >jQuery.validator 驗證規則詳解

jQuery.validator 驗證規則詳解

前言jQuery.validator是一款非常不錯的表單驗證外掛,驗證方式非常簡單方便,它還對HTML5做了相容處理,瞭解了驗證規則,就基本掌握了它的使用,下面就讓我一一道來 jQuery.validator 驗證規則

一、在元素的class屬性中新增需要驗證的規則,多個規則以空格隔開

<label>郵箱:</label>
<input class="required email" type="text" name="email">
required:        // 必填
email:           // 郵箱地址
url:             //
url地址 date: // 日期 dateISO: // ISO格式的日期(2014/08/27 或 2014-08-27) number: // 數字(負數,正數,小數,整數) digits: // 正整數 creditcard: // 信用卡

二、將要驗證的規則作為元素的屬性

<label for="userName">使用者名稱:</label>
<input name="userName" id="userName" required remote="ajax requestUrl"
> <label for="password1">密碼:</label> <input type="password" name="password1" id="password1" required rangelength="6,12"> <label for="password2">請再次輸入密碼:</label> <input type="password" name="password2" id="password2" required equalTo="#password1">
required:        //
必填 email: // 郵箱地址 url: // url地址 date: // 日期 dateISO: // ISO格式的日期(2014/08/27 或 2014-08-27) number: // 數字(負數,正數,小數,整數) digits: // 正整數 creditcard: // 信用卡 // 注意,在元素上將規則作為元素的屬性,除了 required ,以上規則都需要賦值,如:<input type="text" id="email" name="email" email="true"> minlength: // 輸入字元最小長度(中文算一個字元) maxlength: // 輸入字元最大長度(中文算一個字元) rangelength: // 輸入字元最小,最大長度(中文算一個字元) min: // 數值最小值 max: // 數值最大值 range: // 數值最小,最大值 equalTo: // 再次輸入相同的值 remote: // 傳送ajax請求驗證(常用案例就是在註冊時,驗證使用者名稱是否存在), // 注:請求返回的 response === true || response === 'true',才算驗證通過,這需要後端的配合

jQuery.validator內部做了很多處理,下面寫法都是可以的

<input type="password" name="password1" id="password1" required rangelength="6,12">
<input type="password" name="password1" id="password1" required="" rangelength="6, 12">
<input type="password" name="password1" id="password1" required rangelength="6 12">
<input type="password" name="password1" id="password1" required="true" rangelength="[6,12]">

同時還支援HTML5的type屬性,如:

<input type="url" name="url" required>
<input type="number" name="number" required>
<input type="email" name="email" required>

注意:不支援 type="range" 的 input 控制元件,這是因為需要比較最大,最小值,而不只是簡單的正則驗證

三、使用jQuery.fn.data設定驗證規則

<input type="text" name="userName">
$('[name="userName"]').data({
    'ruleRequired': true,
    'ruleRangelength': [4, 10],
    'ruleRemote': 'ajax requestUrl'
});

注意:下面寫法是不會生效的,因為元素屬性都是小寫字母,大寫字母都會轉換為小寫

<input type="text" name="userName" data-ruleRequired="true" data-ruleRangelength="4,10" data-ruleRemote="">

四、在配置物件中,傳遞要驗證的規則

<form id="validForm">
    <input type="text" name="userName">
    <input type="text" name="email">
    
    <input type="submit" value="提交">
</form>
$('#validForm').validate({
    // 每一個name值對應一組規則
    userName: {
        required: true,
        rangelength: [4,10],
        remote: ''    // ajax請求地址
    },
    email: {
        required: true,
        email: true
    }
});

五、自定義驗證規則

使用 $.validator.addMethod( name, method, message ), 便可以新增自定義規則
如:我要自定義一條驗證手機號碼的規則:

$.validator.addMethod('mobile', function( value, element ){

    // /^1\d{10}$/ 來自支付寶的正則
    return this.optional( element ) || /^1\d{10}$/.test( value );

}, '請輸入正確的手機號碼');

六、其他( 處理頻繁請求ajax的操作 )

情景1:關注與取消關注,這種需求需要處理連續 多個ajax請求的關係

我之前的處理是上一個ajax請求完畢了,才去響應使用者的下一次單擊操作,即再次傳送ajax請求

情景2:jQuery.validator原始碼中的例子

如果驗證規則是 remote ,傳送ajax請求驗證,由於外掛在keyUp事件中會觸發驗證,那麼當keyUp頻繁的觸發,ajax就會請求很多很多次啦,這就涉及到處理連續多個ajax請求的問題,
即:上一次ajax請求還沒完成,緊接著又傳送ajax請求,這樣是不是有點凌亂呢,jQuery.validator是這樣做的,將上一次未響應的ajax請求中斷,這樣只會在最後一次keyUp事件中傳送ajax驗證

比較:想想情景1的例子,第二種處理方式更好,因為情景1的處理,可能會在最後一次單擊事件無響應,不會觸發ajax請求,造成使用者體驗不好,這是因為在最後一次單擊事件中,上一次ajax請求還未完成(響應)

PS:
jQuery.validator有四種為表單控制元件新增驗證規則的方式,其內部實現是按 class, attribute, jQuery.fn.data, 配置物件依次疊加的,後面途徑新增的規則會覆蓋前面新增的規則;
如果有多個表單控制元件的name屬性值相同(屬性值包含''),除第一個表單控制元件會驗證,後面name屬性值相同的表單控制元件驗證將會忽略;

本篇只是研究jQuery.validator的驗證規則,其他的放在後面講述,如果你覺得本文對你有用,請豎起你的大拇指,轉載請註明出處:部落格園 華子yjh ,謝謝!

相關推薦

jQuery.validator 驗證規則

前言:jQuery.validator是一款非常不錯的表單驗證外掛,驗證方式非常簡單方便,它還對HTML5做了相容處理,瞭解了驗證規則,就基本掌握了它的使用,下面就讓我一一道來 jQuery.validator 驗證規則 一、在元素的class屬性中新增需要驗證的規則,多個規則以空格隔開 <la

jQuery Validate驗證框架

lec false 樣式 廈門 adding 常用 invalid util 類名 jQuery校驗官網地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation 一、導入js庫 <scri

jQuery 表單驗證外掛jQuery Validation Engine用法

功能強大的 jQuery 表單驗證外掛,適用於日常的 E-mail、電話號碼、網址等驗證及 Ajax 驗證,除自身擁有豐富的驗證規則外,還可以新增自定義的驗證規則。 jQuery Validatio

ThinkPHP+JQuery實現ajax無重新整理登入驗證+相關問題)

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> &

jQuery.extend 函數

而且 卻又 命名空間 什麽 介紹 常用 new end 空間 JQuery的extend擴展方法: Jquery的擴展方法extend是我們在寫插件的過程中常用的方法,該方法有一些重載原型,在此,我們一起去了解了解。 一、Jquery的擴展方法原型是: 

Nginx Rewrite規則

位置 定向 支持 rman 需求 clas 域名 匹配 .com Rewrite規則含義就是某個URL重寫成特定的URL,從某種意義上說為了美觀或者對搜索引擎友好,提高收錄量及排名等。 Rewrite規則的最後一項參數為flag標記,支持的flag標記主要有以下幾種: 1

Jquery之事件委派

spa 性能優化 實現 機制 過濾 event n) function 通過    最近接觸Jquery比較多,今天就被一個Jquery的事件委派坑慘了,特此記錄下,以方便日後的查閱。 一、定義 事件委派的定義就是,把原來加給子元素身上的事件綁定在父元素身上,就是把事件委

Java 驗證

hash rand map builder white form fixed sys ssi   1 使用Servlet實現驗證碼,涉及的知識點主要為java 繪圖技術與session保存數據。    HTML頁面 1 <html> 2 &l

Nginx 關於 location 的匹配規則

嚴格 最大 nginx 順序 執行 gin cat cati 編輯 location 的匹配順序是“先匹配正則,再匹配普通”。 location 的執行邏輯跟 location 的編輯順序無關。 ( 1 )當普通 location 前面指定了“ ^~ ”,特別告訴 Ngin

F3D模式規則

ear 增加 res pla ner 配方 結束 收益 版本 F3D有兩個版本,長期版還有短期版 長期版規則 1、購買時候分配 第一隊 20% to 獎金池, 56%分給所有人, 30% 持有p3d的人第二隊 35% to 獎金池, 43%分給所有人, 8% 持有p3d的

jQuery筆記-jQuery篩選器children()

選擇 jquery篩選 標簽 其中 toolbar ima 成了 query ava jQuery的選擇包含兩種,一種是選擇器,一種是篩選器。篩選器是對選擇器選定的jQuery對象做進一步選擇。children()是一個篩選器,顧名思義就是

pfSense 防火墻Floating(浮動)規則

××× 方法 作用 all 定義 quick 的人 net wal 什麽是Floating(浮動)規則?官方解釋:(摘自https://www.netgate.com/docs/pfsense/firewall/floating-rules.html)浮動規則浮動規則是高級

php實現圖形驗證

最近由於專案需要,圖形驗證碼,就寫了一個,為大家詳細介紹下實現過程! 1、驗證碼封裝實現方法 //生成驗證碼 public function get_img_code(){ ob_clean(); cookie('code',NULL); session('code',NU

前端以canvas實現驗證

前端實現驗證碼生成 實現此功能,可以先拆分出驗證碼有以下要素: 隨機凌亂字元生成 隨機的背景色調 隨機出現的遮擋線與點 要實現此功能我們可以使用css3中canvas元素,通過js我們可以 非常簡單的實現前端生成驗證碼。 下面讓我們逐項實現 我們先在

mysql乾貨——資料庫字符集和校對規則

一、什麼是字符集 字元是多個文字和符號的總稱,包括各個國家的文字、標點符號、圖形符號、數字等。字符集多個字元的集合。 字元集合種類較多,每個字符集包含的字元的個數不同。對於字符集不支援的字元,則以亂碼顯示。 常見的字符集有ASCII字符集、GBK字符集、GB2312字符集、GB18030字

Java表示式轉型規則

先上一道題: 想要正確解答這道題,需要知道Java表示式轉型規則: 當一個java算術表示式中包含多個基本型別的值時,整個算術表示式的資料型別將發生自動提升。Java定義如下的自動提升規則:1. 所有byte型、short型和char型將被提升到int型。2. 整個算術

Spring Data JPA 簡單查詢--方法定義規則()

一、常用規則速查 1   And    並且2   Or      或3   Is,Equals    等於4   Between      兩者之間5   LessThan      小於6   LessThanEqual     小於等於7   Grea

Android簽名機制之---簽名驗證過程

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

在ubuntu16.04中安裝apache2+modsecurity以及自定義WAF規則

一、Modsecurity規則語法示例 SecRule是ModSecurity主要的指令,用於建立安全規則。其基本語法如下: SecRule VARIABLES OPERATOR [ACTIONS] VARIABLES 代表HTTP包中的標識項,規定了安全規則針對的物件。常見的

jQuery中的Deferred-和使用

首先,為什麼要使用Deferred? 先來看一段AJAX的程式碼: var data; $.get('api/data', function(resp) { data = resp.data; }); doSomethingFancyWithDa