jeecg中vaildfrom的复杂的表单校验
简介
jeecg⽣成的页⾯都是使⽤validfrom组件来确保数据的完整性和准确性。
凡要验证格式的元素均需绑定datatype属性,datatype可选值内置有10类,⽤来指定不同的验证格式。
如果还不能满⾜您的验证需求,可以传⼊⾃定义datatype,⾃定义datatype是⼀个⾮常强⼤的功能,通过它可以满⾜你的任何需求。
可以绑定的附加属性有:datatype、nullmsg、sucmsg、errormsg、ignore、recheck、tip、altercss、ajaxurl 和 plugin等。
绑定⽅法如下所⽰:
说明:
内置基本的datatype类型有: * | *6-16 | n | n6-16 | s | s6-18 | p | m | e | url
*:检测是否有输⼊,可以输⼊任何字符,不留空即可通过验证;
*6-16:检测是否为6到16位任意字符;
n:数字类型;
n6-16:6到16位数字;
s:字符串类型;
s6-18:6到18位字符串;
p:验证是否为;
m:⼿机号码格式;
e:email格式;
url:验证字符串是否为⽹址。
1.datatype
⾃定义datatype的名称,可以由字母、数字、下划线、中划线和*号组成。
形如"6-16"的datatype,Validform会⾃动扩展,可以指定任意的数值范围。如内置基本类型有"6-16",那么你绑定datatype="*4-12"就表⽰4到12位任意字符。如果你⾃定义了⼀个datatype="zh2-4",表⽰2到4位中⽂字符,那么datatype="zh2-6"就表⽰2到6位中⽂字符。
5.2版本之后,datatype⽀持规则累加或单选。⽤","分隔表⽰规则累加;⽤"|"分隔表⽰规则多选⼀,即只要符合其中⼀个规则就可以通过验证,绑定的规则会依次验证,只要验证通过,后⾯的规则就会忽略不再⽐较。如绑定datatype="m|e",表⽰既可以填写⼿机号码,也能填写邮箱地址,如果知道填⼊的是⼿机号码,那么就不会再检测他是不是邮箱地址;datatype="zh,s2-4",表⽰要符合⾃定义类型"zh",也要符合规则"s2-4"。
注:
5.2.1版本之后,datatype⽀持:
直接绑定正则:如可⽤这样写datatype="/\w{3,6}/i",要求是3到6位的字母,不区分⼤⼩写;
⽀持简单的逻辑运算:如datatype="m | e, *4-18 | /\w{3,6}/i | /^validform.rjboy$/",
这个表达式的意思是:可以是⼿机号码;或者是邮箱地址,但字符长度必须在4到18位;或者是3到6位的字母,不区分⼤⼩写;或者输⼊validform.rjboy,区分⼤⼩写。这⾥","分隔相当于逻辑运算⾥的"&&
"; "|"分隔相当于逻辑运算⾥的"||";不⽀持括号运算。
2.nullmsg
当表单元素值为空时的提⽰信息,不绑定,默认提⽰"请填⼊信息!"。
如:nullmsg="请填写⽤户名!"
5.3版开始,对于没有绑定nullmsg的对象,会⾃动查class为Validform_label下的⽂字作为提⽰⽂字:
如这样的html结构:
*⽤户名:
当这个⽂本框⾥没有输⼊时的出错信息就会是:"请输⼊⽤户名!"
这⾥Validform_label跟input之间的位置关系,不⼀定是要同级关系,同级⾥没有到的话,它还会在同级的⼦级、⽗级的同级、⽗级的同级的⼦级⾥查。
3.sucmsg 5.3+
当表单元素通过验证时的提⽰信息,不绑定,默认提⽰"通过信息验证!"。
如:sucmsg="⽤户名还未被使⽤,可以注册!"
5.3版开始,也可以在实时验证返回的json数据⾥返回成功的提⽰⽂字,请查看附加属性ajaxurl的介绍。
输⼊内容不能通过验证时的提⽰信息,默认提⽰"请输⼊正确信息!"。
如:errormsg="⽤户名必须是2到4位中⽂字符!"
5.3版开始,Validform可以根据你绑定的datatype智能的输出相应出错信息,具体介绍请查看tipmsg
5.ignore
绑定了ignore="ignore"的表单元素,在有输⼊时,会验证所填数据是否符合datatype所指定数据类型,
没有填写内容时则会忽略对它的验证;
truncated form表单⾥⾯经常需要检查两次密码输⼊是否⼀致,recheck就是⽤来指定需要⽐较的另外⼀个表单元素。
如:recheck="password1",那么它就会拿当前元素的值跟该表单下,name为"password1"的元素⽐较。
7.tip
表单⾥经常有些⽂本框需要默认就显⽰⼀个灰⾊的提⽰⽂字,当获得焦点时提⽰⽂字消失,失去焦点时提⽰⽂字显⽰。tip属性就是⽤来实现这个效果。它通常和altercss搭配使⽤。
8.altercss
它需要和tip属性配合使⽤,altercss指定的样式名,会在⽂本框获得焦点时被删除,没有输⼊内容⽽失去焦点时重新加上。
9.ajaxurl
指定ajax实时验证的后台⽂件的地址。
后台页⾯如valid.php⽂件中可以⽤ $_POST["param"] 接收到值,Ajax中会POST过来变量param和name。param是⽂本框的值,name是⽂本框的name属性。
5.2版本开始,可以在ajaxurl指定的url后绑定参数,如:
ajaxurl="valid.php?myparam1=value1&myparam2=value2";
5.3之前的版本中,该⽂件输出的字符会作为错误信息显⽰在页⾯上,如果验证通过需输出⼩写字母"y"。
在5.3版中,实时验证的返回数据做了调整,须是含有status值的json数据!跟callback⾥的ajax返回数据格式统⼀,建议不再返回字符串"y"或"n"。⽬前这两种格式的数据都兼容。
注:
如果ajax校验通过,会在该元素上绑定validform_valid值为true。可以通过设置该值来控制验证能不能通过,如验证码的验证,第⼀次验证通过后,不⼩⼼右点击了下验证码图⽚,验证码换了,但是仍然指⽰这个对象已经通过了验证,这时可以⼿动调整该值:$("#name") [0].validform_valid="false"。
怎样设置ajax的参数,具体可以查看Validform对象的config⽅法。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。