HTML 表单中的验证
凡要验证格式的元素均需绑定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:验证字符串是否为网址。
自定义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.cn$/",
这个表达式的意思是:可以是手机号码;或者是邮箱地址,但字符长度必须在4到18位;或者是3到6位的字母,不区分大小写;或者输入validform.rjboy.cn,区分大小写。这里","分隔相当于逻辑运算里的"&&"; "|"分隔相当于逻辑运算里的"||";不支持括号运算。
nullmsg
当表单元素值为空时的提示信息,不绑定,默认提示"请填入信息!"。
如:nullmsg="请填写用户名!"
5.3版开始,对于没有绑定nullmsg的对象,会自动查找class为Validform_label下的文字作为提示文字:
如这样的html结构:
<span class="Validform_label">*用户名:</span><inputtype="text" val="" datatype="s" />
当这个文本框里没有输入时的出错信息就会是:"请输入用户名!"
这里Validform_label跟input之间的位置关系,不一定是要同级关系,同级里没有找到的话,它还会在同级的子级、父级的同级、父级的同级的子级里查找。
sucmsg 5.3+
当表单元素通过验证时的提示信息,不绑定,默认提示"通过信息验证!"。
如:sucmsg="用户名还未被使用,可以注册!"
5.3版开始,也可以在实时验证返回的json数据里返回成功的提示文字,请查看附加属性ajaxurl的介绍。
errormsg
输入内容不能通过验证时的提示信息,默认提示"请输入正确信息!"。
如:errormsg="用户名必须是2到4位中文字符!"
5.3版开始,Validform可以根据你绑定的datatype智能的输出相应出错信息,具体介绍请查看tipmsg
ignore
绑定了ignore="ignore"的表单元素,在有输入时,会验证所填数据是否符合datatype所指定数据类型,
没有填写内容时则会忽略对它的验证;
recheck
表单里面经常需要检查两次密码输入是否一致,recheck就是用来指定需要比较的另外一个表单元素。
如:recheck="password1",那么它就会拿当前元素的值跟该表单下,name为"password1"的元素比较。
tip
表单里经常有些文本框需要默认就显示一个灰色的提示文字,当获得焦点时提示文字消失,失去焦点时提示文字显示。tip属性就是用来实现这个效果。它通常和altercss搭配使用。
如<input type="text"value="默认提示文字" class="gray intxt"tip="默认提示文字" altercss="gray" />
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之前的版本中,该文件输出的字符会作为错误信息显示在页面上,如果验证通过需输出小写字母"y"。
在5.3版中,实时验证的返回数据做了调整,须是含有status值的json数据!跟callback里的ajax返回数据格式统一,建议不再返回字符串"y"或"n"。目前这两种格式的数据都兼容。
注:
如果ajax校验通过,会在该元素上绑定validform_valid值为true。可以通过设置该值来控制验证能不能通过,如验证码的验证,第一次验证通过后,不小心右点击了下验证码图片,验证码换了,但是仍然指示这个对象已经通过了验证,这时可以手动调整该值:$("#name")[0].validform_valid="false"。
怎样设置ajax的参数,具体可以查看Validform对象的config方法。
公司的外网前端验证
<label class="span1-5 control-label"><b class="mr5 red500">*</b>见习部门</label>
<div class="span2-5">
<input type="text" name="department" placeholder="请输入见习部门" id="department" class="form-control" datatype="*1-20" nullmsg="请输入见习部门"/>
</div>
<label class="span1-5 control-label"><b class="mr5 red500">*</b>岗位名称</label>
<div class="span2-5">
<input type="text" name="positionname" placeholder="请输入岗位名称" class="form-control" datatype="*1-20" nullms="请输入见习岗位名称"/>
</div>
<label class="span1-5 control-label">
<b class="mr5 red500">*</b>需求人数</label>
<div class="span2-5">
<input type="text" id="neednum" name="neednum" placeholder="请输入需求人数" class="form-control" datatype="n1-8" nullmsg="请输入需求人数" />
</div>
</div>
HTML 表单中的验证的更多相关文章
- 典型的一次jQuery.validate.js 表单中的验证应用
var validateOption = { onkeyup:false, rules:{ password:{ required:true, remote:{ url:'index.php?app= ...
- jquery验证表单中的单选与多选
jquery验证表单中的单选与多选 这里所说的,用jquery去验证某一组多选至少要有一个选中,某一组单选至少有一个选中,,大家都知道单一的一个用js比较好验证,但是想要用jquery的验证并且用到j ...
- 判断密码是否可见/判断登录的状态/判断在form表单中 定义rules规则验证(iview)
一: 判断密码是否可见判断:type="visiblePassword ? 'text' : 'password'" 是否为false 或者 true 密码为输入框或者文本框点击眼 ...
- thinkphp表单自动验证
ThinkPHP框架表单验证 对注册到test表的表单进行验证 在注册之前要对表单进行验证: 用户名非空验证,两次输入密码必须一致即相等验证,年龄在18~50之间即范围验证,邮箱格式正则验证. 自动验 ...
- PHP表单数据验证
背景: 在上次项目的时候,一直不明白为什么要对数据验证,我能保证我每次请求的数据都是合法的,但是在后面的时候,原来“用户”并不是那样听话,他总是要给我们找麻烦,然后可能让我们的服务器崩掉.但是只对单个 ...
- 表单中Readonly和Disabled的区别(转载)
Readonly和Disabled是用在表单中的两个属性,它们都能够做到使用户不能够更改表单域中的内容.但是它们之间有着微小的差别,总结如下: Readonly只针对input(text / pass ...
- form表单中method的get和post区别
一.问题的提出 <form action="getPostServlet/getPost.do?param4=param4" method="get" ...
- 表单中Readonly和Disabled的区别(转)
今天做form提交的时候,用到了disabled,form提交的时候怎么获取都是null,后来用hidden解决了这个问题,但是考虑到为什么,最后找到了原因,转载一篇文章,说明一下 原文:http:/ ...
- AngularJS实现表单手动验证和表单自动验证
AngularJS的表单验证大致有两种,一种是手动验证,一种是自动验证.一.手动验证 所谓手动验证是通过AngularJS表单的属性来验证.而成为AngularJS表单必须满足两个条件: 1.给for ...
随机推荐
- Could not find method google() for arguments [] on repository container.
出这个问题主要是你Gradle版本太低的原因,一般要使用4.0+的版本 所以你需要更新你的Gradle版本至4.0+呦 tips:注意你的AndroidStudio版本应该是3.0以上,因为Gradl ...
- Okhttp 插入缓存拦截器 解析
我们在做网络请求的时候,如果网络请求过于频繁而且请求的数据变动不大,或者基本没有变动,这个时候如果没有缓存功能,我们想一下 会浪费掉多少资源,一次请求刷新一次,去请求一次,不但会消耗用户的流量,而且还 ...
- UVALive - 7041 G - The Problem to Slow Down You
题意:求两个串的公共回文子串个数 题解:建两个回文自动机,从0和1各跑一边就是答案了,因为对于回文自动机来说,从头开始dfs就能找出该字符串的所有回文串 //#pragma GCC optimize( ...
- 【Oracle】【6】去掉字符串最后一个特殊字符
--去除字符串末尾的省字,若无省字则无变化 SELECT DISTINCT TRIM('省' FROM PROVINCE) PROVINCE FROM ADDRESS 参考博客: 1,使用oracle ...
- MongoDB\BSON\UTCDateTime::toDateTime
示例# 1 MongoDB \ BSON \ UTCDatetime:toDateTime()例子 <?php $utcdatetime = new MongoDB\BSON\UTCDateTi ...
- 前端页面兼容ie8解决方法
一.通用兼容文件的引用: 1.HTML5标签兼容方案:html5shiv.js GitHub地址:https://github.com/aFarkas/html5shiv/ IE8不支持HTML5的新 ...
- spring xml的配置
Spring xml文档头得配置 spring文档头一般是可以复制过来得,刚学习得时候一直看网上有没有配置,然后也没有找到,希望以下过程得学习可以给大家带来帮助!! 1 ...
- C++ Leetcode Median of Two Sorted Arrays
坚持每天刷一道题的小可爱还没有疯,依旧很可爱! 题目:There are two sorted arrays nums1 and nums2 of size m and n respectively. ...
- [LeetCode] 110. Balanced Binary Tree ☆(二叉树是否平衡)
Balanced Binary Tree [数据结构和算法]全面剖析树的各类遍历方法 描述 解析 递归分别判断每个节点的左右子树 该题是Easy的原因是该题可以很容易的想到时间复杂度为O(n^2)的方 ...
- IDA 逆向工程 反汇编使用
IDA pro 7.0版本 from:freebuf 用到的工具有IDA pro 7.0 ,被反汇编的是百度云(BaiduNetdisk_5.6.1.2.exe). 首先,IDA pro的长相如下: ...