jQuery validate插件
一、導入js庫
先導入jQuery庫,然后導入Validate插件,如果是中文提示還需要導入messages_zh.js。
注意Validate的導入要在jQuery庫之后。代碼如下:
<script src="jQuery.1.8.3.js" type="text/javascript"></script> <script src="jquery.validate.js" type="text/javascript"></script> <!-- 因為默認是用英文輸出錯誤信息,如果導入下面包就可以默認用中文輸出錯誤信息 --> <script src="messages_zh.js" type="text/javascript"></script>
二、常見默認校驗規則
(1)、required:true 必輸字段 (2)、email:true 必須輸入正確格式的電子郵件 (3)、url:true 必須輸入正確格式的網址 (4)、number:true 必須輸入合法的數字(負數,小數) (5)、digits:true 必須輸入整數 (6)、creditcard:true 必須輸入合法的信用卡號 (7)、equalTo:"#password" 輸入值必須和#password相同 (8)、accept: 輸入擁有合法后綴名的字符串(上傳文件的后綴) (9)、maxlength:5 輸入長度最多是5的字符串(漢字算一個字符) (10)、minlength:10 輸入長度最小是10的字符串(漢字算一個字符) (11)、rangelength:[5,10] 輸入長度必須介于 5 和 10 之間的字符串")(漢字算一個字符) (12)、range:[5,10] 輸入值必須介于 5 和 10 之間 (13)、max:5 輸入值不能大于5 (14)、min:10 輸入值不能小于10
三.submit提交校驗案例
(1)register.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <script type="text/javascript" src="../js/jquery-1.7.1.js"></script> <script type="text/javascript" src="../js/jquery.validate.min.js"></script> <!-- 上面兩個導入就可以,下面這個自己寫一個校驗規則 --> <script type="text/javascript" src="../js/register.js"></script> <html> <head> <style type="text/css" rel="stylesheet"> .wrap{margin:0 auto;width:500px;} .palceholder{ border:solid 1px red;} </style> </head> <body> <div class="wrap"> <h1>注冊</h1> <form action="" id="form_register"> <p>用 戶 名: <input type="text" name="name" /></p> <p>密 碼: <input type="text" name="password" /></p> <p>確認密碼: <input type="text" name="password1" /></p> <p>電子郵件: <input type="text" name="emal" /></p> <p>年 齡: <input type="text" name="age" /></p> <p>愛 好:<select name="hobby" id="hobby"> <option value="">請選擇</option> <option value="1">唱歌</option> <option value="2">跳舞</option> <option value="3">畫畫</option> </select> </p> <input type="submit" value="submit提交"> <input type="submit" value="button提交" id="hand" name="hand"> </form> </div> </body> </html>
先看界面效果:很普通的一個界面
(2)register.js
/*首先校驗要在$(document).ready()里加入驗證規則與錯誤提示位置*/ $(document).ready(function(){ $("#form_register").validate({
debug:true,//如果這個參數為true,那么表單不會提交,只進行檢查,調試時十分方便。 // 錯誤提示 rules:{ name:{required:true}, password:{required:true}, password1:{required:true,equalTo: "#password"}, emal:{required:true}, //這里要注意select有個小細節,就是默認的"請選擇"的value一定要是"",如果你設置了"-1",那它就默認有值,而不去校驗 hobby:{required:true}, age:{required:true,digits:true}, }, messages:{ name:{required:"請輸入用戶名"}, password:{required:"請輸入密碼"}, password1:{required:"請輸入密碼",equalTo: "兩次密碼輸入不一致"}, emal:{required:"請輸入電子郵箱"}, hobby:{required:"請選擇愛好"}, age:{required:"請輸入年齡",digits:"必須為整數"}, }, /* 下面這個很關鍵: error:錯誤信息 element:指當前元素 */ errorPlacement:function(error, element){ //我往當前元素添加class屬性,然后對這個css樣式設置,這樣就可以更加清晰顯示錯誤 element.addClass('palceholder'); //添加placeholder屬性,屬性值就是error.html() element.attr({placeholder:error.html()}); } }); });
(3)當我在界面上點擊submit提交的時候看界面
通過樣式可以讓錯誤信息更明顯
如果我在register.js錯誤顯示方式修改如下:
errorPlacement:function(error, element){ element.addClass('palceholder'); //默認情況是:error.appendTo(element.parent());即把錯誤信息放在驗證的元素后面 error.appendTo(element.parent()); } });
看界面效果:
四.用button提交
我們知道,很多時候我們需要button進行ajax提交,在網上都是這樣寫:
$("#btn).click(function(){ if($("#form").valid()){ ...... } //本人親自測試當button提交時這里的$("#form").valid()是不行,會報錯
找了好多博客發現有一個是可以的,下面進行代碼演示,其它都和上面一樣,就register.js我重新寫一個
$(document).ready(function(){ $("#hand").bind("click" ,function(){ //編寫表單驗證函數validform,在驗證按鈕注冊按鈕點擊事件內調用驗證函數對象 if(validform().form()){ alert(驗證通過); } }); }); function validform(){ /*關鍵在此增加了一個return,返回的是一個validate對象,這個對象有一個form方法,返回的是是否通過驗證*/ return $("#form_register").validate({ debug:true, rules:{ name:{required:true}, password:{required:true}, password1:{required:true,equalTo: "#password"}, emal:{required:true}, hobby:{required:true}, age:{required:true,digits:true}, }, messages:{ name:{required:"請輸入用戶名"}, password:{required:"請輸入密碼"}, password1:{required:"請輸入密碼",equalTo: "兩次密碼輸入不一致"}, emal:{required:"請輸入電子郵箱"}, hobby:{required:"請選擇愛好"}, age:{required:"請輸入年齡",digits:"必須為整數"}, }, errorPlacement:function(error, element){ element.addClass('palceholder'); error.appendTo(element.parent()); } }); }
當點擊button提交按鈕時,發現界面也可以進行校驗
基本上就這么多,以后用到新的,以后再寫。
想的太多,做的太少,中間的落差就是煩惱,要么去做,要么別想 少尉【16】