validate jquery 注册页面使用实例 详解
官方使用文档:http://jqueryvalidation.org/documentation/
参考资料:http://www.w3cschool.cc/jquery/jquery-plugin-validate.html
导入JS 文件 记得都使用压缩过的.min的js 依赖jquery 版本在1.11.1下没问题 其他版本没有测试
<script type="text/javascript" src="/js/jquery-1.11.1.js"></script>
<script type="text/javascript" src="/js/jquery.validate.js"></script>
HTML结构 使用 thinkphp框架做的
<div class="w100 register-bg">
<div class="w1200 center register-block"> <div class="register-div" >
<form action="{:U('Service/reg/index')}" method="post" class="reg-form" id="register" >
<fieldset style="border: 0px;">
<legend class="ui header">用户注册
<a href="{:U('Login/index')}" target="_self"> 已有账号登陆</a>
</legend> <p class="field">
<label>用户名:</label> <input ID="name" name="name" type="text" placeholder="用户名" class="user-name">
<span></span> </p> <p class="field">
<label>密码:</label> <input id="pw" name="pw" type="password" placeholder="密码" class="user-pw"> </p> <p class="field">
<label>重复密码:</label> <input id="againpw" name="againpw" type="password" placeholder="重复密码" class="user-re-pw"> </p> <p class="field">
<label>邮箱:</label> <input id="emali" name="email" type="text" placeholder="邮箱" class="user-email"> </p>
<p class="checkbox">
<input type="checkbox" name="read" value="1" class="user-read"> <label for="read" placeholder="用户协议选择">
我已阅读同意星耀学园
<a href="" target="_blank">《用户协议》</a>
</label>
</p>
<p class="field">
<button type="submit" class="register-button ">注册</button>
</p>
</fieldset>
</form> </div> </div> </div>
使用方法 :
最基本的就是 表单ID 执行validate函数验证
<script type="text/javascript">
$(document).ready(function(){
$("#register").validate({
});
})
</script>
remote使用实例
官方介绍 http://jqueryvalidation.org/remote-method/
注意的就是remote写在验证字段的里面 rules 的字段 比如name下 name字段 在HTML 的属性ID 和name属性值 都是这个
messages的字段name里 加remote 后面直接提示文字
后端返回的是字符串true 或者fales 看JS源码貌似比较的就是true
$(document).ready(function(){
$("#register").validate({
/* debug:true,*/
errorClass:'x-error',
errorElement:'div',
/*错误信息显示位置*/
errorPlacement:function(error,element){
error.appendTo(element.parent().find('label'))
},
rules:{
name:{
required:true,
minlength:4 ,
rangelength:[4,10],
remote:{
url:'{:U("Service/Validata/checkUsername")}',
type:'post',
data:{
name:function(){
return $('#name').val();
}
}
}
},
pw:{
required:true,
minlength:8,
rangelength:[8,16]
},
againpw:{
required:true,
minlength:8,
rangelength:[8,16],
equalTo:"#againpw"
},
email:{
required:true,
email:true,
remote:{
url:'{:U("Service/Validata/checkEmail")}',
type:'post',
data:{
email:function(){
return $('#email').val();
}
}
}
},
agreement:{
required:true
}
},
messages:{
name:{
required:"请输入用户名",
minlength:"用户名最少为4个字符",
rangelength:"用户名为4-10个字符",
remote:"用户名已被注册"
},
pw:{
required:"请输入密码",
minlength:"密码最少8位",
rangelength:"请输入8位到16位的密码"
},
againpw:{
required:"请输入确认密码",
minlength:"确认密码最少8位",
rangelength:"请输入8位到16位密码",
equalTo:"两次输入密码不一致"
},
email:{
required:"请输入email",
email:"请输入一个有效的email地址",
remote:"邮箱已被注册!"
},
agreement:{
required:"不同意星耀学园协议不能注册!"
}
}
});
})
验证规则
rules:{
name:{
required:true,
minlength:4 ,
rangelength:[4,10],
remote:{
url:'{:U("Service/Validata/checkUsername")}',
type:'post',
data:{
name:function(){
return $('#name').val();
}
}
}
}
}
提示文字
messages:{
name:{
required:"请输入用户名",
minlength:"用户名最少为4个字符",
rangelength:"用户名为4-10个字符",
remote:"用户名已被注册"
}
}
后台php thinkphp框架 这里接受的参数是前端remote data里的参数
public function checkUsername(){
$name = I('name',0);//这里name是JS remote发送的data参数
if($name == "0"){
echo "false";
}else{
$Member = M('admin_member');
$s = $Member->where(array(admin_name=>$name))->select();
echo $s == null ?"true":"false" ;
}
}
public function checkEmail(){
$email = I('email',0);
if($email == "0"){
echo "false";
}else{
$Member = M('admin_member');
$s = $Member->where(array(email=>$email))->select();
echo $s == null ?"true":"false" ;
}
}
想看到前台返回什么可以在源码jquery.validate.js里查找remote 在$.ajax 里success 的返回参数response 输出这个值 就能在浏览器里看到了

错误信息设置
errorClass 提示错误的类名 errorElement 提示错误信息的元素 自动添加 后面errorPlacement就是要把错误信息放在哪个位置上
errorClass:'x-error',
errorElement:'div',
/*错误信息显示位置*/
errorPlacement:function(error,element){
error.appendTo(element.parent().find('label'))
},
下面是字段验证规则
比如name字段
一般常用的就是必须填写 最少4位(举例) 输入4-10个字符串(举例)
required:true 必须填写 minlength:4 最少输入4个字符 rangelength:[4,10]输入4-10个范围的字符 这些都是写在rules里
name:{
required:true,
minlength:4 ,
rangelength:[4,10],
remote:{
url:'{:U("Service/Validata/checkUsername")}',
type:'post',
data:{
name:function(){
return $('#name').val();
}
}
}
},
提示文字 写在messages 对应验证属性required minlength rangelength remote 填写对应提示信息即可
name:{
required:"请输入用户名",
minlength:"用户名最少为4个字符",
rangelength:"用户名为4-10个字符",
remote:"用户名已被注册"
},
查看验证方法 直接去源码里搜索methods
验证checkbox必须选中
HTML
<p class="checkbox">
<input type="checkbox" name="agreement" value="1" class="user-read" id="agreement">
<label for="agreement" placeholder="用户协议选择">
我已阅读同意星耀学园
<a href="" target="_blank">《用户协议》</a>
</label>
</p>
验证规则
agreement:{
required:true
}
其他参考网址
http://www.w3cschool.cc/jquery/jquery-plugin-validate.html
validate jquery 注册页面使用实例 详解的更多相关文章
- jQuery对html元素的取值与赋值实例详解
jQuery对html元素的取值与赋值实例详解 转载 2015-12-18 作者:欢欢 我要评论 这篇文章主要介绍了jQuery对html元素的取值与赋值,较为详细的分析了jQuery针对常 ...
- Bootstrap如何实现导航条?导航条实例详解
本文主要和大家分享Bootstrap实现导航实例详解,在建设一个网站的时候,不同的页面有很多元素是一样的,比如导航条.侧边栏等,我们可以使用模板的继承,避免重复编写html代码.现在我们打算实现一个在 ...
- Vue 实例详解与生命周期
Vue 实例详解与生命周期 Vue 的实例是 Vue 框架的入口,其实也就是前端的 ViewModel,它包含了页面中的业务逻辑处理.数据模型等,当然它也有自己的一系列的生命周期的事件钩子,辅助我们进 ...
- JS JSOP跨域请求实例详解
JSONP(JSON with Padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题.这篇文章主要介绍了JS JSOP跨域请求实例详解的相关资料,需要的朋友可以参考下 ...
- JavaScript学习笔记-实例详解-类(一)
实例详解-类(一): //每个javascript函数(除了bind())都自动拥有一个prototype对象// 在未添加属性或重写prototype对象之前,它只包含唯一一个不可枚举属性const ...
- ASP.NT运行原理和页面生命周期详解及其应用
ASP.NT运行原理和页面生命周期详解及其应用 1. 下面是我画的一张关于asp.net运行原理和页面生命周期的一张详解图.如果你对具体不太了解,请参照博客园其他帖子.在这里我主要讲解它的实际应用. ...
- Entity Framework实例详解
Entity Framework Code First的默认行为是使用一系列约定将POCO类映射到表.然而,有时候,不能也不想遵循这些约定,那就需要重写它们.重写默认约定有两种方式:Data Anno ...
- 免费的HTML5连载来了《HTML5网页开发实例详解》连载(二)
最近新浪.百度.腾讯.京东.大众点评.淘宝等流行的网站都加大了招聘HTML5的力度,HTML5开发人员成了抢手货,本次连载的是由大众点评前端工程师和一淘网前端工程师基情奉献的<HTML5网页开发 ...
- 转载 《AngularJS》5个实例详解Directive(指令)机制
<AngularJS>5个实例详解Directive(指令)机制 大漠穷秋 本文整理并扩展了<AngularJS>这本书第六章里面的内容,此书近期即将由电子工业出版社出版,敬请 ...
随机推荐
- 去掉iPhone、iPad的默认按钮样式 去掉高光样式:
input[type="button"], input[type="submit"], input[type="reset"] { -web ...
- Jquery-选择框点击勾选或者取消
1:单选框,直接定位到属性名称 $(document).ready(function(){ var old = null; //用来保存原来的对象 $("input[name='sex']& ...
- Leetcode 77, Combinations
Given two integers n and k, return all possible combinations of k numbers out of 1 ... n. For exampl ...
- 【BZOJ-4310】跳蚤 后缀数组 + ST表 + 二分
4310: 跳蚤 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 180 Solved: 83[Submit][Status][Discuss] De ...
- BZOJ2426 [HAOI2010]工厂选址
Description 某地区有m座煤矿,其中第i号矿每年产量为ai吨,现有火力发电厂一个,每年需用煤b吨,每年运行的固定费用(包括折旧费,不包括煤的运费)为h元,每吨原煤从第i号矿运到原有发电厂的运 ...
- 通过VMwarek可以安装Android_x86
Android也能安装到VMware上,不过内核是x86的. Android_x86下载资源:http://www.x86android.com/portal.php VMware版本>=12 ...
- Linux Network Related Drive
catalog . 通过套接字通信 . 网络实现的分层模型 . 网络命名空间 . 套接字缓冲区 . 网络访问层 . 网络层 . 传输层 . 应用层 . 内核内部的网络通信 1. 通过套接字通信 Lin ...
- raspberry pi的网络配置
这个像是interface的man. http://fts.ifac.cnr.it/cgi-bin/dwww?type=runman&location=interfaces/5 然后是一篇博文 ...
- AC 自动机
AC自动机(Aho-Corasick Automata)是经典的多模式匹配算法.从前我学过这个算法,但理解的不深刻,现在已经十分不明了了.现在发觉自己对大部分算法的掌握都有问题,决定重写一系列博客把学 ...
- python中isort的使用
是一个使import 列表更美观的工具包,官方例子如下: before from my_lib import Object print("Hey") import os from ...