日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

开发指南专题九:JEECG微云快速开发平台-表单校验组件ValidForm

發(fā)布時間:2025/3/16 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 开发指南专题九:JEECG微云快速开发平台-表单校验组件ValidForm 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.


開發(fā)指南專題九:JEECG微云快速開發(fā)平臺表單校驗組件ValidForm


10.表單校驗組件ValidForm

10.1使用入門

1、引入css

請查看下載文件中的style.css,把里面Validform必須部分復制到你的css中(文件里這個注釋 "/*==========以下部分是Validform必須的===========*/" 之后的部分是必須的)。(之前發(fā)現(xiàn)有部分網(wǎng)友把整個style.css都引用在了頁面里,然后發(fā)現(xiàn)樣式?jīng)_突了)

2、引入js (jquery 1.4.2 以上版本都可以)


3、給需要驗證的表單元素綁定附加屬性


4、初始化,就這么簡單




注:

1、Validform有非壓縮、壓縮和NCR三個版本提供下載,NCR是通用版,當你頁面因編碼問題,提示文字出現(xiàn)亂碼時可以使用這個版本;

2、Validform沒有限定必須使用table結(jié)構(gòu),它可以適用于任何結(jié)構(gòu),需要在tiptype中定義好位置關(guān)系。

10.2綁定附加屬性

凡要驗證格式的元素均需綁定datatype屬性,datatype可選值內(nèi)置有10類,用來指定不同的驗證格式。

如果還不能滿足您的驗證需求,可以傳入自定義datatype,自定義datatype是一個非常強大的功能,通過它可以滿足你的任何需求。

可以綁定的附加屬性有:datatype、nullmsg、sucmsg、errormsg、ignore、recheck、tip、altercss、ajaxurl?和?plugin等。

綁定方法如下所示:



說明:

內(nèi)置基本的datatype類型有:?* | *6-16 | n | n6-16 | s | s6-18 | p | m | e | url

*:檢測是否有輸入,可以輸入任何字符,不留空即可通過驗證;

*6-16:檢測是否為6到16位任意字符;

n:數(shù)字類型;

n6-16:6到16位數(shù)字;

s:字符串類型;

s6-18:6到18位字符串;

p:驗證是否為郵政編碼;

m:手機號碼格式;

e:email格式;

url:驗證字符串是否為網(wǎng)址。

自定義datatype的名稱,可以由字母、數(shù)字、下劃線、中劃線和*號組成。

形如"*6-16"的datatype,Validform會自動擴展,可以指定任意的數(shù)值范圍。如內(nèi)置基本類型有"*6-16",那么你綁定datatype="*4-12"就表示4到12位任意字符。如果你自定義了一個datatype="zh2-4",表示2到4位中文字符,那么datatype="zh2-6"就表示2到6位中文字符。

5.2版本之后,datatype支持規(guī)則累加或單選。用","分隔表示規(guī)則累加;用"|"分隔表示規(guī)則多選一,即只要符合其中一個規(guī)則就可以通過驗證,綁定的規(guī)則會依次驗證,只要驗證通過,后面的規(guī)則就會忽略不再比較。如綁定datatype="m|e",表示既可以填寫手機號碼,也能填寫郵箱地址,如果知道填入的是手機號碼,那么就不會再檢測他是不是郵箱地址;datatype="zh,s2-4",表示要符合自定義類型"zh",也要符合規(guī)則"s2-4"。

注:

5.2.1版本之后,datatype支持:

直接綁定正則:如可用這樣寫datatype="/\w{3,6}/i",要求是3到6位的字母,不區(qū)分大小寫;

支持簡單的邏輯運算:如datatype="m?|?e,?*4-18?|?/\w{3,6}/i?|?/^validform\.rjboy\.cn$/",

這個表達式的意思是:可以是手機號碼;或者是郵箱地址,但字符長度必須在4到18位;或者是3到6位的字母,不區(qū)分大小寫;或者輸入validform.rjboy.cn,區(qū)分大小寫。這里","分隔相當于邏輯運算里的"&&"; "|"分隔相當于邏輯運算里的"||";不支持括號運算。

nullmsg

當表單元素值為空時的提示信息,不綁定,默認提示"請?zhí)钊胄畔?#xff01;"。

如:nullmsg="請?zhí)顚懹脩裘?#xff01;"

5.3版開始,對于沒有綁定nullmsg的對象,會自動查找class為Validform_label下的文字作為提示文字:

如這樣的html結(jié)構(gòu):

<span class="Validform_label">*用戶名:</span><inputtype="text" val="" datatype="s" />

當這個文本框里沒有輸入時的出錯信息就會是:"請輸入用戶名!"

這里Validform_label跟input之間的位置關(guān)系,不一定是要同級關(guān)系,同級里沒有找到的話,它還會在同級的子級、父級的同級、父級的同級的子級里查找。

sucmsg?5.3+

當表單元素通過驗證時的提示信息,不綁定,默認提示"通過信息驗證!"。

如:sucmsg="用戶名還未被使用,可以注冊!"

5.3版開始,也可以在實時驗證返回的json數(shù)據(jù)里返回成功的提示文字,請查看附加屬性ajaxurl的介紹。

errormsg

輸入內(nèi)容不能通過驗證時的提示信息,默認提示"請輸入正確信息!"。

如:errormsg="用戶名必須是2到4位中文字符!"

5.3版開始,Validform可以根據(jù)你綁定的datatype智能的輸出相應出錯信息,具體介紹請查看tipmsg

ignore

綁定了ignore="ignore"的表單元素,在有輸入時,會驗證所填數(shù)據(jù)是否符合datatype所指定數(shù)據(jù)類型,

沒有填寫內(nèi)容時則會忽略對它的驗證;

recheck

表單里面經(jīng)常需要檢查兩次密碼輸入是否一致,recheck就是用來指定需要比較的另外一個表單元素。
如:recheck="password1",那么它就會拿當前元素的值跟該表單下,name為"password1"的元素比較。

tip

表單里經(jīng)常有些文本框需要默認就顯示一個灰色的提示文字,當獲得焦點時提示文字消失,失去焦點時提示文字顯示。tip屬性就是用來實現(xiàn)這個效果。它通常和altercss搭配使用。

如<input type="text"value="默認提示文字" class="gray intxt"tip="默認提示文字" altercss="gray" />

altercss

它需要和tip屬性配合使用,altercss指定的樣式名,會在文本框獲得焦點時被刪除,沒有輸入內(nèi)容而失去焦點時重新加上。

ajaxurl

指定ajax實時驗證的后臺文件的地址。

后臺頁面如valid.php文件中可以用 $_POST["param"] 接收到值,Ajax中會POST過來變量param和name。param是文本框的值,name是文本框的name屬性。

5.2版本開始,可以在ajaxurl指定的url后綁定參數(shù),如:

ajaxurl="valid.php?myparam1=value1&myparam2=value2";

5.3之前的版本中,該文件輸出的字符會作為錯誤信息顯示在頁面上,如果驗證通過需輸出小寫字母"y"。

在5.3版中,實時驗證的返回數(shù)據(jù)做了調(diào)整,須是含有status值的json數(shù)據(jù)!跟callback里的ajax返回數(shù)據(jù)格式統(tǒng)一,建議不再返回字符串"y"或"n"。目前這兩種格式的數(shù)據(jù)都兼容。

注:?

如果ajax校驗通過,會在該元素上綁定validform_valid值為true。可以通過設(shè)置該值來控制驗證能不能通過,如驗證碼的驗證,第一次驗證通過后,不小心右點擊了下驗證碼圖片,驗證碼換了,但是仍然指示這個對象已經(jīng)通過了驗證,這時可以手動調(diào)整該值:$("#name")[0].validform_valid="false"。

怎樣設(shè)置ajax的參數(shù),具體可以查看Validform對象的config方法。

plugin

指定需要使用的插件。

5.3版開始,對于日期、swfupload和密碼強度檢測這三個插件,綁定了plugin屬性即可以初始化對應的插件,可以不用在validform初始化時傳入空的usePlugin了。

如,你要使用日期插件,5.3之前版本需要這樣初始化

$(".demoform").Validform({

??? usePlugin:{

??? ????????datepicker:{}

??? }

});

5.3版開始,不需要傳入這些空對象了,只需在表單元素上綁定plugin="datepicker"就可以,初始化直接這樣:

$(".demoform").Validform();

10.3初始化參數(shù)說明

所有可用的參數(shù)如下:

$(".demoform").Validform({
????????btnSubmit:"#btn_sub",
????????btnReset:".btn_reset",
????????tiptype:1,
????????ignoreHidden:false,
??????? dragonfly:false,
????????tipSweep:true,
????????showAllError:false,
????????postonce:true,
????????ajaxPost:true,
????????datatype:{
????????????????"*6-20":/^[^\s]{6,20}$/,
????????????????"z2-4":/^[\u4E00-\u9FA5\uf900-\ufa2d]{2,4}$/,
????????????????"username":function(gets,obj,curform,regxp){
????????????????????????//參數(shù)gets是獲取到的表單元素值,obj為當前表單元素,curform為當前驗證的表單,regxp為內(nèi)置的一些正則表達式的引用;
????????????????????????var reg1=/^[\w\.]{4,16}$/,
????????????????????????????????reg2=/^[\u4E00-\u9FA5\uf900-\ufa2d]{2,8}$/;
?
????????????????????????if(reg1.test(gets)){returntrue;}
????????????????????????if(reg2.test(gets)){returntrue;}
????????????????????????returnfalse;
?
????????????????????????//注意return可以返回true false 或字符串文字,true表示驗證通過,返回字符串表示驗證失敗,字符串作為錯誤提示顯示,返回false則用errmsg或默認的錯誤提示;
????????????????},
????????????????"phone":function(){
????????????????????????// 5.0 版本之后,要實現(xiàn)二選一的驗證效果,datatype的名稱不需要以 "option_"開頭;????????
????????????????}
????????},
????????usePlugin:{
????????????????swfupload:{},
????????????????datepicker:{},
????????????????passwordstrength:{},
????????????????jqtransform:{
????????????????????????selector:"select,input"
????????????????}
????????},
????????beforeCheck:function(curform){
????????????????//在表單提交執(zhí)行驗證之前執(zhí)行的函數(shù),curform參數(shù)是當前表單對象。
????????????????//這里明確return false的話將不會繼續(xù)執(zhí)行驗證操作;????????
????????},
????????beforeSubmit:function(curform){
????????????????//在驗證成功后,表單提交前執(zhí)行的函數(shù),curform參數(shù)是當前表單對象。
????????????????//這里明確return false的話表單將不會提交;????????
????????},
????????callback:function(data){
????????????????//返回數(shù)據(jù)datajson格式,{"info":"demo info","status":"y"}
????????????????//info: 輸出提示信息;
????????????????//status: 返回提交數(shù)據(jù)的狀態(tài),是否提交成功。如可以用"y"表示提交成功,"n"表示提交失敗,在ajax_post.php文件返回數(shù)據(jù)里自定字符,主要用在callback函數(shù)里根據(jù)該值執(zhí)行相應的回調(diào)操作;
????????????????//你也可以在ajax_post.php文件返回更多信息在這里獲取,進行相應操作;
????????????????//ajax遇到服務端錯誤時也會執(zhí)行回調(diào),這時的data{ status:**, statusText:**, readyState:**, responseText:** }
?
????????????????//這里執(zhí)行回調(diào)操作;
????????????????//注意:如果不是ajax方式提交表單,傳入callback,這時data參數(shù)是當前表單對象,回調(diào)函數(shù)會在表單驗證全部通過后執(zhí)行,然后判斷是否提交表單,如果callback里明確return false,則表單不會提交,如果return true或沒有return,則會提交表單。
????????}
});

參數(shù)說明:【所有參數(shù)均為可選項】

必須是表單對象執(zhí)行Validform方法,示例中".demoform"就是綁定在form元素上的class名稱;

btnSubmit

指定當前表單下的哪一個按鈕觸發(fā)表單提交事件,如果表單下有submit按鈕時可以省略該參數(shù)。示例中".btn_sub"是該表單下要綁定點擊提交表單事件的按鈕;

btnReset

".btn_reset"是該表單下要綁定點擊重置表單事件的按鈕;

tiptype

可用的值有:1、2、3、4和function函數(shù),默認tiptype為1。(?3、4是5.2.1版本新增)

1=>自定義彈出框提示;

2=>側(cè)邊提示(會在當前元素的父級的next對象的子級查找顯示提示信息的對象,表單以ajax提交時會彈出自定義提示框顯示表單提交狀態(tài));

3=>側(cè)邊提示(會在當前元素的siblings對象中查找顯示提示信息的對象,表單以ajax提交時會彈出自定義提示框顯示表單提交狀態(tài));

4=>側(cè)邊提示(會在當前元素的父級的next對象下查找顯示提示信息的對象,表單以ajax提交時不顯示表單的提交狀態(tài));

如果上面的4種提示方式不是你需要的,你可以給tiptype傳入自定義函數(shù)。通過自定義函數(shù),可以實現(xiàn)你想要的任何提示效果:

tiptype:function(msg,o,cssctl){

??? //msg:提示信息;

??? //o:{obj:*,type:*,curform:*},

??? //obj指向的是當前驗證的表單元素(或表單對象,驗證全部驗證通過,提交表單時o.obj為該表單對象),

//type指示提示的狀態(tài),值為1、2、3、4, 1:正在檢測/提交數(shù)據(jù),2:通過驗證,3:驗證失敗,4:提示ignore狀態(tài),

//curform為當前form對象;

//cssctl:內(nèi)置的提示信息樣式控制函數(shù),該函數(shù)需傳入兩個參數(shù):顯示提示信息的對象和當前提示的狀態(tài)(既形參o中的type);

}

具體參見demo頁。

tiptype不為1時,Validform會查找class為"Validform_checktip"的標簽顯示提示信息。tiptype=1時,會自動創(chuàng)建彈出框顯示提示信息。

Validform_checktip和表單元素之間的位置關(guān)系,會根據(jù)tiptype的值有對應的結(jié)構(gòu),上面已經(jīng)做了說明。

5.3版本開始,如果頁面里沒有顯示出錯信息的標簽,會根據(jù)tiptype值自動創(chuàng)建Validform_checktip對象。

ignoreHidden

可用值: true | false。

默認為false,當為true時對:hidden的表單元素將不做驗證;

dragonfly

可用值: true | false。

默認false,當為true時,值為空時不做驗證;

tipSweep

可用值: true | false。

默認為false,?5.3版中做了修正,在各種tiptype下,?為true時提示信息將只會在表單提交時觸發(fā)顯示,各表單元素blur時不會觸發(fā)信息提示;

showAllError

可用值: true | false。

默認為false,true:提交表單時所有錯誤提示信息都會顯示;false:一碰到驗證不通過的對象就會停止檢測后面的元素,只顯示該元素的錯誤信息;

postonce

可用值: true | false。

默認為false,指定是否開啟二次提交防御,true開啟,不指定則默認關(guān)閉;

為true時,在數(shù)據(jù)成功提交后,表單將不能再繼續(xù)提交。

ajaxPost

可用值: true | false。

默認為false,使用ajax方式提交表單數(shù)據(jù),將會把數(shù)據(jù)POST到config方法或表單action屬性里設(shè)定的地址;

datatype

傳入自定義datatype類型,可以是正則,也可以是函數(shù)。

datatyp:{

???"zh2-4":/^[\u4E00-\u9FA5\uf900-\ufa2d]{2,4}$/,

???"phone":function(gets,obj,curform,regxp){

??????? //參數(shù)gets是獲取到的表單元素值,

??? ????//obj為當前表單元素,

??????? //curform為當前驗證的表單,

??????? //regxp為內(nèi)置的一些正則表達式的引用。

//return false表示驗證出錯,沒有return或者return true表示驗證通過。

??? }

}

具體示例請參考demo頁;

usePlugin

目前已整合swfupload、datepicker、passwordstrength和jqtransform四個插件,在這里傳入這些插件使用時需要傳入的參數(shù)。datepicker在Validform內(nèi)調(diào)用時另外擴展了幾個比較實用的參數(shù),具體請參考demo頁;

beforeCheck(curform)

在表單提交執(zhí)行驗證之前執(zhí)行的函數(shù),curform參數(shù)獲取到的是當前表單對象。
函數(shù)return false的話將不會繼續(xù)執(zhí)行驗證操作;

beforeSubmit(curform)

在表單驗證通過,提交表單數(shù)據(jù)之前執(zhí)行的函數(shù),data參數(shù)是當前表單對象。
函數(shù)return false的話表單將不會提交;

callback

在使用ajax提交表單數(shù)據(jù)時,數(shù)據(jù)提交后的回調(diào)函數(shù)。返回數(shù)據(jù)data是Json格式:
{"info":"demo info","status":"y"}

info: 輸出提示信息,

status: 返回提交數(shù)據(jù)的狀態(tài),是否提交成功,"y"表示提交成功,"n"表示提交失敗,在ajax_post.php文件返回數(shù)據(jù)里自定字符,主要用在callback函數(shù)里根據(jù)該值執(zhí)行相應的回調(diào)操作。你也可以在ajax_post.php文件返回更多信息在這里獲取,進行相應操作;

如果不是ajax方式提交表單,傳入callback,這時data參數(shù)是當前表單對象,回調(diào)函數(shù)會在表單驗證全部通過后執(zhí)行,然后判斷是否提交表單,如果callback里return false,則表單不會提交,如果return true或沒有return,則會提交表單。

5.3版開始,ajax遇到服務端錯誤時也會執(zhí)行回調(diào),這時的data是{ status:**,statusText:**, readyState:**, responseText:** }








新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎!定制產(chǎn)品紅包拿不停!

總結(jié)

以上是生活随笔為你收集整理的开发指南专题九:JEECG微云快速开发平台-表单校验组件ValidForm的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。