当前位置: 首页 > 工具软件 > validForm-js > 使用案例 >

Validform_v5.3.2 自定义规则

翟俊茂
2023-12-01

最近接手一个五年前的系统,需要对系统做改进。前端表单验证使用的就是Validform_v5.3.2

Validform_v5.3.2 百度云https://pan.baidu.com/s/1J6QoHCNshSH1neSDkV967g

我遇到的主要问题是什么呢 ?

手机号呀,运营反馈:16 19 14 打头的所有手机号均不能使用咱们的系统。其实我并不是一个做前端开发的,但是只做一写功能的重新维护及开发就免不得要修改这些问题。我把网上找到资料到这里做一个整理,供大家参考。也给自己做个备份,很多信息都是丢了,后面重新再找 又要话太多时间:

解决方式一:

修改前
<input id="mobilePhone" name="mobilePhone" class="txt grayBg"  ajaxurl="${ctx}/mobile-exit.json" value="${member.mobilePhone}" errormsg="手机号码格式不正确" nullmsg="请输入您的联系电话" datatype="m" />
修改后
<input id="mobilePhone" name="mobilePhone"  class="txt grayBg"  ajaxurl="${ctx}/mobile-exit.json" value="${member.mobilePhone}" errormsg="手机号码格式不正确" nullmsg="请输入您的联系电话" datatype="/^1(3|4|5|6|7|8|9)\d{9}$/" />

解决方式二:


var mobileReg=/^1(3|4|5|6|7|8|9)\d{9}$/ ;
$(".demoform").Validform({
    datatype:{
        //传入自定义datatype类型,可以是正则,也可以是函数(函数内会传入一个参数);
        "mobile": mobileReg ,
        "chinaPhone":function(gets,obj,curform,regxp){
            //参数gets是获取到的表单元素值,obj为当前表单元素,curform为当前验证的表单,regxp为内置的一些正则表达式的引用;
            if( mobileReg.test(gets) ){return true;}
            return false;
            //注意return可以返回true 或 false 或 字符串文字,true表示验证通过,false则是失败
        }
    }
});


datatype=mobile 做手机号的验证

还有更加细致的配置,比如提交表单前我要做什么事情都可以做配置:

$(".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或默认的错误提示;
	},
	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里设置参数;

有点乱,这部分配置引用:https://www.cnblogs.com/dreamflycc/p/valid.html

 类似资料: