HTML Input 表单校验之datatype

凡要验证格式的元素均需绑定datatype属性,datatype可选值内置有10类,用来指定不同的验证格式。如果还不能满足您的验证需求,可以传入自定义datatype,自定义datatype是一个非常强大的功能,通过它可以满足你的任何需求。

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

内置datatype类型说明

内置基本的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:验证字符串是否为网址。

自定义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+)

5.2版本之后,datatype支持规则累加或单选。用","分隔表示规则累加;用"|"分隔表示规则多选一,即只要符合其中一个规则就可以通过验证,绑定的规则会依次验证,只要验证通过,后面的规则就会忽略不再比较。如绑定datatype="m|e",表示既可以填写手机号码,也能填写邮箱地址,如果知道填入的是手机号码,那么就不会再检测他是不是邮箱地址;datatype="zh,s2-4",表示要符合自定义类型"zh",也要符合规则"s2-4"。

高级用法(5.2.1+)

5.2.1版本之后,datatype支持:

  • 直接绑定正则:如可用这样写datatype="/\\w{3,6}/i",要求是3到6位的字母,不区分大小写;
  • 支持简单的逻辑运算:如datatype="m | e, *4-18 | /\\w{3,6}/i | /^validform.rjboy.cn$/",这个表达式的意思是:可以是手机号码;或者是邮箱地址,但字符长度必须在4到18位;或者是3到6位的字母,不区分大小写;或者输入validform.rjboy.cn,区分大小写。这里","分隔相当于逻辑运算里的"&&"; "|"分隔相当于逻辑运算里的"||";不支持括号运算。

附加属性详解

nullmsg

当表单元素值为空时的提示信息,不绑定,默认提示"请填入信息!"。如:nullmsg="请填写用户名!"

5.3版开始,对于没有绑定nullmsg的对象,会自动查找class为Validform_label下的文字作为提示文字。

如这样的html结构:

sucmsg (5.3+)

当表单元素通过验证时的提示信息,不绑定,默认提示"通过信息验证!"。如:sucmsg="用户名还未被使用,可以注册!"

errormsg

输入内容不能通过验证时的提示信息,默认提示"请输入正确信息!"。如:errormsg="用户名必须是2到4位中文字符!"

ignore

绑定了ignore="ignore"的表单元素,在有输入时,会验证所填数据是否符合datatype所指定数据类型,没有填写内容时则会忽略对它的验证。

recheck

表单里面经常需要检查两次密码输入是否一致,recheck就是用来指定需要比较的另外一个表单元素。如:recheck="password1",那么它就会拿当前元素的值跟该表单下,name为"password1"的元素比较。

tip

表单里经常有些文本框需要默认就显示一个灰色的提示文字,当获得焦点时提示文字消失,失去焦点时提示文字显示。tip属性就是用来实现这个效果。它通常和altercss搭配使用。

altercss

它需要和tip属性配合使用,altercss指定的样式名,会在文本框获得焦点时被删除,没有输入内容而失去焦点时重新加上。

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版开始,实时验证的返回数据须是含有status值的json数据,跟callback里的ajax返回数据格式统一。

注意:如果ajax校验通过,会在该元素上绑定validform_valid值为true。可以通过设置该值来控制验证能不能通过。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部