jquery.validate.unobtrusive的使用

?

應用

一、引入?<script src="Scripts/jquery-1.7.1.min.js"></script>

<script src="Scripts/jquery.validate.js"></script>

<script src="Scripts/jquery.validate.unobtrusive.js"></script>

二、1)在需要驗證的input標簽上添加屬性data-val="true",即表示改標簽參加驗證。

2)繼續在標簽上添加屬性data-val-required="用戶名不能為空!",表示此標簽的內容不能為空的驗證。

三、顯示驗證信息,有兩種方式顯示。一種是集中顯示驗證信息,另一種是在具體位置顯示相對應的驗證信息。

1)在需要顯示驗證信息的位置寫入以下代碼

復制代碼
1   <div class="validation-summary-valid" data-valmsg summary="true">
2             <ul>
3                 <li style="display: none"></li>
4             </ul>
5         </div>
復制代碼

2)相對應的驗證信息顯示

1   <input type="text"  name="cus" id="cus" data-val="true" data-val-required="用戶名不能為空!" /> <span data-valmsg-for="cus" data-valmsg-replace="true"></span>

以上三部即可完成最基本簡單的驗證。

如需添加標簽的其他驗證只需重復第二部即可。

驗證規則

一、簡單規則

剛才我們知道了data-val-required是必輸字段,簡單的驗證規則如下

1.data-val-required 必輸字段??
2.data-val-email 必須輸入正確格式的電子郵件?
3.data-val-url 必須輸入正確格式的網址?
4.data-val-date 必須輸入正確格式的日期?
5.data-val-digits: 必須輸入正整數
6.data-val-number:必須輸入整數

二、復雜一點的規則

我們知道了簡單基本的驗證規則,但這些不能滿足我們的需求。

1.比如注冊確認密碼的驗證
(data-val-equalto="密碼和確認密碼不匹配。" data-val-equalto-other="pwd")
這時只設置一個屬性不能滿足我們的需求。因為我們要找到另一個文本框的值。data-val-equalto-other對應另一個文本框的name的值

復制代碼
 1  <div class="control-group">2        <label class="control-label">3                *密碼4         </label>5       <div class="controls">6              <input type="password" name="pwd" id="pwd" data-val="true" data-val-required="密碼不能為空!" />7              <span data-valmsg-for="pwd" data-valmsg-replace="true"></span>8         </div>9   </div>
10  <div class="control-group">
11          <label class="control-label">
12                  *確認密碼
13            </label>
14      <div class="controls">
15                  <input type="password" name="Password1" id="Password1" data-val="true" data-val-required="確認密碼不能為空!" data-val-equalto="密碼和確認密碼不匹配。" data-val-equalto-other="pwd" />
16                   <span data-valmsg-for="Password1" data-valmsg-replace="true"></span>
17       </div>
18</div>
復制代碼

2.data-val-length 字符的長度 ,data-val-length-max表示最大字符數 data-val-length-min 表示最小字符數

復制代碼
1 <div class="control-group">
2                 <label class="control-label">
3                     *密碼
4                 </label>
5                 <div class="controls">
6                     <input type="password" name="pwd" id="pwd" data-val="true" data-val-required="密碼不能為空!" data-val-length-max="100" data-val-length-min="6" data-val-length="密碼必須至少包含 6 個字符。" />
7                     <span data-valmsg-for="pwd" data-valmsg-replace="true"></span>
8                 </div>
9             </div>
復制代碼

3.data-val-accept 正確的后綴名,data-val-accept-exts 符合后綴名的集合
data-val="true" data-val-required="不能為空!" data-val-accept="后綴名為.jpg、.gif或.png" data-val-accept-exts="jpg|gif|png"

4.data-val-range 數字的大小范圍,data-val-range-min 最小數 data-val-range-max 最大數

三、再復雜一點的規則(正則)

以上的驗證規則需要兩個或者兩個以上的屬性才能完成驗證,但是這些仍然不能滿足我們的需求。比如手機格式的驗證,這些我們可能需要正則來輔助我們驗證

data-val-regex表示正則的驗證方式,data-val-regex-pattern正則的表達式

復制代碼
1   <div class="controls">
2          <input type="text" id="regex" name="regex" data-val="true" data-val-required="不能為空!" data-val-regex="手機格式不正確" data-val-regex-pattern="(13[0-9]|15[012356789]|18[0236789]|14[57])[0-9]{8}" />
3          <span data-valmsg-for="regex" data-valmsg-replace="true"></span>
4     </div>
復制代碼

?

四、再再復雜一點的規則(ajax)

有點時候我們需要ajax來驗證規則,比如我們常見的檢查用戶名是否可用

data-val-remote可以幫助我們實現功能,data-val-remote-url表示ajax驗證的路徑,直接返回true or false 即可完成驗證。

1  <div class="controls">
2            <input type="text" name="loginName" data-val="true" data-val-required="登錄名不能為空!" data-val-remote="已經被注冊,請選擇其他登錄名稱!" data-val-remote-url="checkuserid.aspx" />
3            <span data-valmsg-for="loginName" data-valmsg-replace="true"></span>
4   </div>

五、終極驗證規則(自定義驗證規則)

雖然以上驗證規則足夠可以我們使用,但是可能需要我們自定義的驗證規則。
熟悉jQuery validate的驗證方式知道可以添加自定義的驗證規則,因為此驗證規則是對jQuery validate的擴展,所以需要在jQuery validate的基礎上進行自定義驗證。

1)添加jQuery validate自定義驗證方法

判斷值是否等于“123”

1  $.validator.addMethod('notequal', function (value, element, params)
2     {
3             return value != "123";
4    });

2)添加擴展方法的自定義方法

復制代碼
1  $.validator.unobtrusive.adapters.add("notequal", function (options)
2         {
3             options.rules["notequal"] = {
4                
5             };
6             options.messages["notequal"] = options.message;
7         });
復制代碼

3)data-val-notequal="姓名不能等于 123"

?

1   <input type="text" value="" name="cus" id="cus" data-val="true" data-val-notequal="姓名不能等于 123"/>
2    <span data-valmsg-for="cus" data-valmsg-replace="true"></span>

這樣即可完成簡單的自定義驗證規則。

有的時候我們需要指定參數來實現自定義驗證規則

?

復制代碼
 1  $.validator.addMethod('notequal', function (value, element, params)2         {3             return value != params["va"];4         });5 6         $.validator.unobtrusive.adapters.add("notequal", ["va"], function (options)7         {8             options.rules["notequal"] = {9                 va: options.params.va
10             };
11             options.messages["notequal"] = options.message;
12         });
復制代碼
1    <input type="text" value="" name="cus" id="cus" data-val="true" data-val-notequal="姓名不能夠等于 123" data-val-notequal-va="123"/>
2    <span data-valmsg-for="cus" data-valmsg-replace="true"></span>

這樣就可以完成比較復雜的自定義驗證規則。

轉載于:https://www.cnblogs.com/weiweithe/p/5268654.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/272216.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/272216.shtml
英文地址,請注明出處:http://en.pswp.cn/news/272216.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux操作系統六大優點

??作者主頁&#xff1a;IT技術分享社區 ??作者簡介&#xff1a;大家好,我是IT技術分享社區的博主&#xff0c;從事C#、Java開發九年&#xff0c;對數據庫、C#、Java、前端、運維、電腦技巧等經驗豐富。 ??個人榮譽&#xff1a; 數據庫領域優質創作者&#x1f3c6;&#x…

[webview] 放大縮小的問題

http://www.cocoachina.com/bbs/read.php?tid33249轉載于:https://www.cnblogs.com/zxykit/p/5274831.html

進程間通信IPC(一)(半雙工管道和消息隊列)

引言&#xff1a; 之前學習的進程之間交換信息的方法只能由fork或exec傳送打開文件&#xff0c;或者文件系統。但是這種通訊方式有局限性&#xff0c;接下來將說明進程之間相互通信的其他技術——IPC(InterProcessCommunication)&#xff0c;過去UNIX系統IPC是各種進程間通信方…

Seata相關概念

相關概念 XID&#xff1a;一個全局事務的唯一標識 Transaction Coordinator (TC)&#xff1a; 事務協調器&#xff0c;維護全局事務的運行狀態&#xff0c;負責協調并驅動全局事務的提交或回滾&#xff08;可以理解為事務的協調者&#xff09;。 Transaction Manager (TM)&…

VSS配置

http://www.cnblogs.com/FreeDong/articles/2193151.html轉載于:https://www.cnblogs.com/lacey/p/5275514.html

Program terminated with signal SIGSEGV, Segmentation fault.

問題&#xff1a; 在程序運行時出現了&#xff1a;Segmentation fault (core dumped)&#xff0c;分段故障(堆芯轉儲)也就是段錯誤。 我首先在一篇博客上面找到如何使用gdb調試&#xff1a; 1、首先使用ulimit -a查看你的core file size是否為0.如果不是的話就請跳到步驟3&am…

NFS簡介

NFS 是Network File System的縮寫&#xff0c;即網絡文件系統。一種使用于分散式文件系統的協定&#xff0c;由Sun公司開發&#xff0c;于1984年向外公布。功能是通過網絡讓不同的機器、不同的操作系統能夠彼此分享個別的數據&#xff0c;讓應用程序在客戶端通過網絡訪問位于服…

Php Laravel框架 多表關系處理 之 Eloquent一對多關系處理

Php Laravel框架 多表關系處理 之 Eloquent一對多關系處理 本博文主要介紹 Laravel 框架中 Eloquent 對一對多關系的處理以及在 Laravel Administrator(后臺擴展包)中的應用。 您的數據庫可能是彼此相關的。比方&#xff0c;一篇博客文章可能有很多評論&#xff0c;或者一個訂…

進程間通信IPC(二)(共享內存、信號、信號量)

共享內存&#xff1a; 共享內存就是允許兩個或多個進程共享一定的存儲區。就如同 malloc() 函數向不同進程返回了指向同一個物理內存區域的指針。當一個進程改變了這塊地址中的內容的時候&#xff0c;其它進程都會察覺到這個更改。因為數據不需要在客戶機和服務器端之間復制&am…

分布式理論CAP定理

CAP原則又稱CAP定理&#xff0c;指的是在一個分布式系統中&#xff0c; Consistency&#xff08;一致性&#xff09;、 Availability&#xff08;可用性&#xff09;、Partition tolerance&#xff08;分區容錯性&#xff09;&#xff0c;三者不可兼得。 998年&#xff0c;加州…

xmlWriter 以UTF-8格式寫xml問題

dom4j中的XMLWriter提供以下幾種構造方法&#xff1a; XMLWriter() XMLWriter(OutputFormat format) XMLWriter(OutputStream out) XMLWriter(OutputStream out, OutputFormat format) XMLWriter(Writer writer) XMLWriter(Writer writer, OutputFormat format) 最簡單常…

linux線程(互斥鎖、條件)

線程概念&#xff1a; 典型的UNIX/Linux進程可以看成只有一個控制線程&#xff1a;一個進程在同一時刻只做一件事情。有了多個控制線程后&#xff0c;在程序設計時可以把進程設計成在同一時刻做不止一件事&#xff0c;每個線程各自處理獨立的任務。 進程是程序執行時的一個實例…

centos下防火墻設置

1、開啟防火墻 systemctl start firewalld2、開放指定端口firewall-cmd --zonepublic --add-port8888/tcp --permanent命令含義&#xff1a; --zone #作用域 --add-port1935/tcp #添加端口&#xff0c;格式為&#xff1a;端口/通訊協議 --permanent #永久生效&#xff0c;沒有…

linux網絡編程、socket編程

進程間通信&#xff1a; 特點&#xff1a;依賴于內核&#xff0c;造成缺陷——無法實現多機通信。 網絡&#xff1a; 地址&#xff1a;由IP地址&#xff08;IP地址是IP協議提供的一種統一的地址格式&#xff0c;它為互聯網上的每一個網絡和每一臺主機分配一個邏輯地址&#xf…

【Python】Python Mako模板使用

參考資料&#xff1a; Mako Templates for Python官網&#xff1a;http://www.makotemplates.org/ Python模板庫Mako的用法&#xff1a;http://my.oschina.net/u/877170/blog/290438 Mako 1.0.4 Documentation&#xff1a;http://docs.makotemplates.org/en/latest/usage.html#…

簡單的ftp服務器(客戶端、服務器端、socket)

查看本機IP地址&#xff1a; 127.0.0.1 服務器功能&#xff1a; 可以獲取服務器文件使用get指令可以展示服務器有哪些文件使用ls指令進入服務器某個文件夾使用指令cd文件夾名稱上傳本地文件到服務器&#xff0c;使用指令putpwd可以查看客戶端在當前服務器的位置 客戶端本地…

JavaScript 全局對象

JavaScript 全局對象 全局屬性和函數可用于所有內建的 JavaScript 對象。 頂層函數&#xff08;全局函數&#xff09; 函數描述decodeURI()解碼某個編碼的 URI。decodeURIComponent()解碼一個編碼的 URI 組件。encodeURI()把字符串編碼為 URI。encodeURIComponent()把字符串編碼…