jquery强大的验证控件jquery-validate
2016-04-20 00:00
232 查看
摘要: 前端的表单验证工具
一、介绍和规则
一般在做开发时候,有很多方式要对前端提交的表单进行验证,有很多都是自己写的,不过学习了jquer-validate这个工具,感觉用起来确实方便。
首先在对应的页面引入我们jquery和所需要空间的js
默认的验证规则:
另外对于radio和checkbox、select的需要在对应的input或者select里面加上class="{"对应的验证方式"}"
一般来说这三个在项目中用的比较多的是必选或者必填就是 “required:true”;
关于异步验证,说白了就是使用ajax来进行验证:
需要使用:remote
具体规则:
远程地址只能输出 "true" 或 "false",不能有其他输出。
至于为什么远程地址只能输出"true" 或 "false",可以这样理解,这个工具的作用就是验证,也就是 "是"或"非",个人用的ajax验证比较多的就是去验证数据库名称是否重复
其实使用方式也是很简单的
在rules里面写上需要验证的东西,就像下面input框为必填,不能为空。和input框的长度最小为4
messages:里面填写验证失败需要提示的信息内容。也可以不在messages里面写,默认的提示是英文,也可以自己只做一个语言包进行替换,我在开发时候直接在下面写的~.~
二、例子
下面是自己写的一个简单的例子:
对应的ajax验证代码(ajax.php):
一、介绍和规则
一般在做开发时候,有很多方式要对前端提交的表单进行验证,有很多都是自己写的,不过学习了jquer-validate这个工具,感觉用起来确实方便。首先在对应的页面引入我们jquery和所需要空间的js
<script src="js/jquery.js"></script> <script src="js/jquery.validate.js"></script>
默认的验证规则:
(1)、required:true 必输字段 (2)、remote:"remote-valid.jsp" 使用ajax方法调用remote-valid.jsp验证输入值 (3)、email:true 必须输入正确格式的电子邮件 (4)、url:true 必须输入正确格式的网址 (5)、date:true 必须输入正确格式的日期,日期校验ie6出错,慎用 (6)、dateISO:true 必须输入正确格式的日期(ISO),例如:2009-06-23,1998/01/22 只验证格式,不验证有效性 (7)、number:true 必须输入合法的数字(负数,小数) (8)、digits:true 必须输入整数 (9)、creditcard:true 必须输入合法的信用卡号 (10)、equalTo:"#password" 输入值必须和#password相同 (11)、accept: 输入拥有合法后缀名的字符串(上传文件的后缀) (12)、maxlength:5 输入长度最多是5的字符串(汉字算一个字符) (13)、minlength:10 输入长度最小是10的字符串(汉字算一个字符) (14)、rangelength:[5,10] 输入长度必须介于 5 和 10 之间的字符串")(汉字算一个字符) (15)、range:[5,10] 输入值必须介于 5 和 10 之间 (16)、max:5 输入值不能大于5 (17)、min:10 输入值不能小于10
另外对于radio和checkbox、select的需要在对应的input或者select里面加上class="{"对应的验证方式"}"
一般来说这三个在项目中用的比较多的是必选或者必填就是 “required:true”;
关于异步验证,说白了就是使用ajax来进行验证:
需要使用:remote
具体规则:
remote: { url: "url地址", //后台处理程序 type: "post", //数据发送方式 dataType: "json", //接受数据格式 data: { //要传递的数据 username: function() { return $("#name").val(); } } }
远程地址只能输出 "true" 或 "false",不能有其他输出。
至于为什么远程地址只能输出"true" 或 "false",可以这样理解,这个工具的作用就是验证,也就是 "是"或"非",个人用的ajax验证比较多的就是去验证数据库名称是否重复
其实使用方式也是很简单的
在rules里面写上需要验证的东西,就像下面input框为必填,不能为空。和input框的长度最小为4
messages:里面填写验证失败需要提示的信息内容。也可以不在messages里面写,默认的提示是英文,也可以自己只做一个语言包进行替换,我在开发时候直接在下面写的~.~
rules:{ name:{ required:true, minlength:4 } } messages:{ name:{ required:"请输入您的名字", minlength:"用户名必须4个字母" } }
二、例子
下面是自己写的一个简单的例子:<!DOCTYPE html >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>jquery-validation</title>
</head>
<style>
.error{
color:#F00;
}
</style>
<script src="js/jquery.js"></script> <script src="js/jquery.validate.js"></script>
<body>
<form method="post" action="#" id="the_from" class="the-from">
<p>
<label>姓名</label>
<input id="cname" name="name" type="text" />
</p>
<p>
<label>邮箱</label>
<input id="cemail" name="email" type="text" />
</p>
<label>情感状态</label>
<select class="{required:true}" id="select" name="select">
<option value="">请选择</option>
<option value="1">单身狗</option>
<option value="0">虐狗的</option>
</select>
</p>
<p>
<label>备注</label>
<textarea id="comment" name="comment"></textarea>
</p>
<p>
<p>
<input id="submit" type="submit" value="提交">
</p>
</form>
</body>
</html>
<script>
$.validator.setDefaults({
submitHandler: function() {
$('#the_from').submit();
}
});
$().ready(function() {
$("#the_from").validate({
rules:{
name:{
required:true,
minlength:4,
remote:{
url:"ajax.php",
type:"post",
dataType:"json",
data:{
id:function(){return "1";},
val:function(){return $("#cname").val();}
}
}
},
email:{
required:true,
email: true
},
comment:{
required:true
},
select:{
required:true
}
},
messages:{
name:{
required:"请输入您的名字",
minlength:"用户名必须4个字母",
remote:"ajax说名称不能重复"
},
email:{
required:"邮箱不能为空",
email: "请输入正确的邮箱"
},
comment:{
required:"请填写您的备注"
},
select:{
required:"请填写感情状态"
}
}
});
});
</script>
对应的ajax验证代码(ajax.php):
<?php $id=$_POST['id']; $val=$_POST['val']; /* *一般在开发过程中用的时候都是去验证数据库比较多 *先假如我们的业务规则名字是不能是123456的 */ $result="123456"; if($val==$result){ exit("false"); }else{ exit("true"); }
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- PHP数据库长连接mysql_pconnect的细节
- html5 web数据存储
- SEO
- Php Installing An Expansion
- 异步流程控制:7 行代码学会 co 模块
- [译] React 入门
- 如何优雅处理前端异常?
- php7 读取php.ini[4]
- jQuery插件Validate实现自定义表单验证
- PHP+Apache在Windows 9x下的安装和配置
- IIS 6 的 PHP 最佳配置方法
- 安装Apache和PHP的一些补充