Validform表單驗證總結


近期項目里用到了表單的驗證,選擇了Validform_v5.3.2。

先來了解一下一些基本的參數:

通用表單驗證方法:
Demo:

$(".demoform").Validform({//$(".demoform")指明是哪一表單需要驗證,名稱需加在form表單上;
btnSubmit:"#btn_sub", //#btn_sub是該表單下要綁定點擊提交表單事件的按鈕;如果form內含有submit按鈕該參數可省略;
btnReset:".btn_reset",//可選項 .btn_reset是該表單下要綁定點擊重置表單事件的按鈕;
tiptype:1, //可選項 1=>pop box,2=>side tip(parent.next.find; with default pop),3=>side tip(siblings; with default pop),4=>side tip(siblings; none pop),默認為1,也可以傳入一個function函數,自定義提示信息的顯示方式(可以實現你想要的任何效果,具體參見demo頁);
ignoreHidden:false,//可選項 true | false 默認為false,當為true時對:hidden的表單元素將不做驗證;
dragonfly:false,//可選項 true | false 默認false,當為true時,值為空時不做驗證;
tipSweep:true,//可選項 true | false 默認為false,只在表單提交時觸發檢測,blur事件將不會觸發檢測(實時驗證會在后台進行,不會顯示檢測結果);
label:".label",//可選項 選擇符,在沒有綁定nullmsg時查找要顯示的提示文字,默認查找".Validform_label"下的文字;
showAllError:false,//可選項 true | false,true:提交表單時所有錯誤提示信息都會顯示,false:一碰到驗證不通過的就停止檢測后面的元素,只顯示該元素的錯誤信息;
postonce:true, //可選項 表單是否只能提交一次,true開啟,不填則默認關閉;
ajaxPost:true, //使用ajax方式提交表單數據,默認false,提交地址就是action指定地址;
datatype:{//傳入自定義datatype類型,可以是正則,也可以是函數(函數內會傳入一個參數);
"*6-20": /^[^\s]{6,20}$/,
"z2-4" : /^[\u4E00-\u9FA5\uf900-\ufa2d]{2,4}$/,
"username":function(gets,obj,curform,regxp){
//參數gets是獲取到的表單元素值,obj為當前表單元素,curform為當前驗證的表單,regxp為內置的一些正則表達式的引用;
var reg1=/^[\w\.]{4,16}$/,
reg2=/^[\u4E00-\u9FA5\uf900-\ufa2d]{2,8}$/;

if(reg1.test(gets)){return true;}
if(reg2.test(gets)){return true;}
return false;

//注意return可以返回true 或 false 或 字符串文字,true表示驗證通過,返回字符串表示驗證失敗,字符串作為錯誤提示顯示,返回false則用errmsg或默認的錯誤提示;
},
"phone":function(){
// 5.0 版本之后,要實現二選一的驗證效果,datatype 的名稱 不 需要以 "option_" 開頭;    
}
},
usePlugin:{
swfupload:{},
datepicker:{},
passwordstrength:{},
jqtransform:{
selector:"select,input"
}
},
beforeCheck:function(curform){
//在表單提交執行驗證之前執行的函數,curform參數是當前表單對象。
//這里明確return false的話將不會繼續執行驗證操作;    
},
beforeSubmit:function(curform){
//在驗證成功后,表單提交前執行的函數,curform參數是當前表單對象。
//這里明確return false的話表單將不會提交;    
},
callback:function(data){
//返回數據data是json格式,{"info":"demo info","status":"y"}
//info: 輸出提示信息;
//status: 返回提交數據的狀態,是否提交成功。如可以用"y"表示提交成功,"n"表示提交失敗,在ajax_post.php文件返回數據里自定字符,主要用在callback函數里根據該值執行相應的回調操作;
//你也可以在ajax_post.php文件返回更多信息在這里獲取,進行相應操作;
//ajax遇到服務端錯誤時也會執行回調,這時的data是{ status:**, statusText:**, readyState:**, responseText:** };

//這里執行回調操作;
//注意:如果不是ajax方式提交表單,傳入callback,這時data參數是當前表單對象,回調函數會在表單驗證全部通過后執行,然后判斷是否提交表單,如果callback里明確return false,則表單不會提交,如果return true或沒有return,則會提交表單。
}
});

Validform對象的方法和屬性:
tipmsg:自定義提示信息,通過修改Validform對象的這個屬性值來讓同一個頁面的不同表單使用不同的提示文字;
dataType:獲取內置的一些正則;
eq(n):獲取Validform對象的第n個元素;
ajaxPost(flag,sync,url):以ajax方式提交表單。flag為true時,跳過驗證直接提交,sync為true時將以同步的方式進行ajax提交,傳入了url地址時,表單會提交到這個地址;
abort():終止ajax的提交;
submitForm(flag,url):以參數里設置的方式提交表單,flag為true時,跳過驗證直接提交,傳入了url地址時,表單會提交到這個地址;
resetForm():重置表單;
resetStatus():重置表單的提交狀態。傳入了postonce參數的話,表單成功提交后狀態會設置為"posted",重置提交狀態可以讓表單繼續可以提交;
getStatus():獲取表單的提交狀態,normal:未提交,posting:正在提交,posted:已成功提交過;
setStatus(status):設置表單的提交狀態,可以設置normal,posting,posted三種狀態,不傳參則設置狀態為posting,這個狀態表單可以驗證,但不能提交;
ignore(selector):忽略對所選擇對象的驗證;
unignore(selector):將ignore方法所忽略驗證的對象重新獲取驗證效果;
addRule(rule):可以通過Validform對象的這個方法來給表單元素綁定驗證規則;
check(bool,selector):對指定對象進行驗證(默認驗證當前整個表單),通過返回true,否則返回false(綁定實時驗證的對象,格式符合要求時返回true,而不會等ajax的返回結果),bool為true時則只驗證不顯示提示信息;
config(setup):可以通過這個方法來修改初始化參數,指定表單的提交地址,給表單ajax和實時驗證的ajax里設置參數;

 



下面是demo的下載地址的鏈接,有需要的可以下載。

 

demo下載地址


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM