官方使用文档: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 注册页面使用实例 详解的更多相关文章

  1. jQuery对html元素的取值与赋值实例详解

    jQuery对html元素的取值与赋值实例详解 转载  2015-12-18   作者:欢欢   我要评论 这篇文章主要介绍了jQuery对html元素的取值与赋值,较为详细的分析了jQuery针对常 ...

  2. Bootstrap如何实现导航条?导航条实例详解

    本文主要和大家分享Bootstrap实现导航实例详解,在建设一个网站的时候,不同的页面有很多元素是一样的,比如导航条.侧边栏等,我们可以使用模板的继承,避免重复编写html代码.现在我们打算实现一个在 ...

  3. Vue 实例详解与生命周期

    Vue 实例详解与生命周期 Vue 的实例是 Vue 框架的入口,其实也就是前端的 ViewModel,它包含了页面中的业务逻辑处理.数据模型等,当然它也有自己的一系列的生命周期的事件钩子,辅助我们进 ...

  4. JS JSOP跨域请求实例详解

    JSONP(JSON with Padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题.这篇文章主要介绍了JS JSOP跨域请求实例详解的相关资料,需要的朋友可以参考下 ...

  5. JavaScript学习笔记-实例详解-类(一)

    实例详解-类(一): //每个javascript函数(除了bind())都自动拥有一个prototype对象// 在未添加属性或重写prototype对象之前,它只包含唯一一个不可枚举属性const ...

  6. ASP.NT运行原理和页面生命周期详解及其应用

    ASP.NT运行原理和页面生命周期详解及其应用 1. 下面是我画的一张关于asp.net运行原理和页面生命周期的一张详解图.如果你对具体不太了解,请参照博客园其他帖子.在这里我主要讲解它的实际应用.  ...

  7. Entity Framework实例详解

    Entity Framework Code First的默认行为是使用一系列约定将POCO类映射到表.然而,有时候,不能也不想遵循这些约定,那就需要重写它们.重写默认约定有两种方式:Data Anno ...

  8. 免费的HTML5连载来了《HTML5网页开发实例详解》连载(二)

    最近新浪.百度.腾讯.京东.大众点评.淘宝等流行的网站都加大了招聘HTML5的力度,HTML5开发人员成了抢手货,本次连载的是由大众点评前端工程师和一淘网前端工程师基情奉献的<HTML5网页开发 ...

  9. 转载 《AngularJS》5个实例详解Directive(指令)机制

    <AngularJS>5个实例详解Directive(指令)机制 大漠穷秋 本文整理并扩展了<AngularJS>这本书第六章里面的内容,此书近期即将由电子工业出版社出版,敬请 ...

随机推荐

  1. mysql-异常Incorrect string value: '\xF0\x9F...' for column 'XXX' at row 1

    这个问题,原因是UTF-8编码有可能是两个.三个.四个字节.Emoji表情或者某些特殊字符是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去. 网上摘抄的问题解决方案:http:// ...

  2. iOS 使用AFN 进行单图和多图上传

    图片上传时必要将图片进行压缩,不然会上传失败 1.单张图上传 AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManag ...

  3. subroutines of perl

    #!/usr/bin/perl -w @students = qw/Doreen Oskar Elin Sangeet Malin/; &next_student; &next_stu ...

  4. matplotlib 和 pandas 两个包的安装

    matplotlib是强大的python 绘图包.pandas 是强大的python分析工具包.numpy是强大的python统计包. 都超级好用,而且最近开始动手实践机器学习算法了.特此备注一下安装 ...

  5. ubuntu 通过命令将数据复制到u盘

    自己现在也不好意思和别人说自己熟悉linux了,自己用linux,也是当做桌面系统用了,很少熟悉那些linux命令结果上次linux桌面图形界面进不去了只能用命令行,经过几个晚上的折腾终于弄好,现在记 ...

  6. BZOJ2120 数颜色(带修改莫队)

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...

  7. PowerDesigner中Table视图同时显示Code和Name

    如题,实现如下的效果: 解决方法: 1.Tools-Display Preference 然后选中Code移到最上面

  8. 关于Android程序设计—有道词典demo转移至coding的公告

    有道词典的demo以及解析已转移至Coding https://coding.net/u/monsterLin/p/WebView_YouDao/git

  9. Zabbix邮件报警-->Script

    Version:3.0.1 邮件报警有两种media 1.Email zabbix发送报警邮件到指定smtp服务器(使用系统自带的sendmail,发送邮箱是zabbix服务器的本地邮箱账号) 再由s ...

  10. GitBash上传代码不计入贡献的问题处理

    发现最近写的代码,通过GitBash上传到github,但是格子确一个都没亮,今天通过一番检索解决了此问题,特做记录: 通过这篇文章找到了原因所在: GitHub 更新代码到底怎样才算贡献? 通过这篇 ...