jQuery验证插件validation使用指南


Posted in Javascript onApril 21, 2015

在网站开发过程中,有时我们需要验证用户输入的信息是否符合我们的要求,所以我们会对用户提交的数据进行验证。验证分两次进行,一次是在客户端,一次是在服务端。客户端的验证可以提升用户的体验。

jquery验证插件有很多,实现的功能也基本相同。本文介绍的只是jquery验证插件中的一种jquery.validate

jquery.Validation是一款优秀的jquery插件,它能对客户端表单进行验证,并且提供了许多可以定制的属性和方法,良好的扩展性。

1.jquery.validate插件功能

简单实现客户端信息验证,过滤不符合要求的信息

2.jquery.validate官方地址

官方地址:http://jqueryvalidation.org/,有详细的插件使用说明

官方demo:http://jquery.bassistance.de/validate/demo/

3.jquery.validate使用方法

1.引用js

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.validate.js"></script>

2.css样式,可自定义,简单的只需要添加error样式,也可使用官方demo中的样式。

.error{
  color:red;
  margin-left:8px;
}

3.js代码

$(document).ready(function() {
  // validate signup form on keyup and submit
  var validator = $("#signupform").validate({
    rules: {
      firstname: "required",
      username: {
        required: true,
        minlength: 2
      },
      password: {
        required: true,
        minlength: 5
      },
      password_confirm: {
        required: true,
        minlength: 5,
        equalTo: "#password"
      },
      email: {
        required: true,
        email: true,
      },
      dateformat: "required",
      terms: "required"
    },
    messages: {
      firstname: "姓名不能为空",
      username: {
        required: "用户名不能为空",
        minlength: jQuery.format("用户名只少由 {0} 字符组成")
      },
      password: {
        required: "密码不能为空",
        minlength: jQuery.format("密码只少由 {0} 字符组成")
      },
      password_confirm: {
        required: "确认密码不能为空",
        minlength: jQuery.format("确认密码只少由 {0} 字符组成"),
        equalTo: "秘密与确认密码不一致"
      },
      email: {
        required: "邮箱不能为空",
        email: "邮箱格式不正确"
      },
      dateformat: "请选择性别",
      terms: " "
    },
    // the errorPlacement has to take the table layout into account
    errorPlacement: function(error, element) {
      if ( element.is(":radio") )
        error.appendTo( element.parent().next().next());
      else if ( element.is(":checkbox") )
        error.appendTo ( element.next());
      else
        error.appendTo( element.parent().next());
    },
    // specifying a submitHandler prevents the default submit, good for the demo
    submitHandler: function() {
      alert("submitted!");
    },
    // set this class to error-labels to indicate valid fields
    success: function(label) {
      // set   as text for IE
      label.html(" ").addClass("checked");
    },
    highlight: function(element, errorClass) {
      $(element).parent().next().find("." + errorClass).removeClass("checked");
    }
  });
});

以上的代码只使用了插件提供的属性和方法。也可以自定义验证方法。如

$.validator.addMethod("checkUserName", function(value) {

    //value为验证的值,对应于元素id

  //方法代码

}, '用户名格式不正确');

使用自定义方法也非常简单,只需要 元素id:”checkUserName”

4.使用的html

<form id="signupform" autocomplete="off" method="get" action="">
   <table>
   <tr>
    <td class="label"><label id="lfirstname" for="firstname">姓名</label></td>
    <td class="field"><input id="firstname" name="firstname" type="text" value="" maxlength="100" /></td>
    <td class="status"></td>
   </tr>
   <tr>
    <td class="label"><label id="lusername" for="username">用户名</label></td>
    <td class="field"><input id="username" name="username" type="text" value="" maxlength="50" /></td>
    <td class="status"></td>
   </tr>
   <tr>
    <td class="label"><label id="lpassword" for="password">密码</label></td>
    <td class="field"><input id="password" name="password" type="password" maxlength="50" value="" /></td>
    <td class="status"></td>
   </tr>
   <tr>
    <td class="label"><label id="lpassword_confirm" for="password_confirm">确认密码</label></td>
    <td class="field"><input id="password_confirm" name="password_confirm" type="password" maxlength="50" value="" /></td>
    <td class="status"></td>
   </tr>
   <tr>
    <td class="label"><label id="lemail" for="email">邮箱</label></td>
    <td class="field"><input id="email" name="email" type="text" value="" maxlength="150" /></td>
    <td class="status"></td>
   </tr>
         <tr>
    <td class="label"><label>性别</label></td>
    <td class="field" colspan="2" style="vertical-align: top; padding-top: 2px;">
    <table>
    <tbody>

    <tr>
      <td style="padding-right: 5px;">
        <input id="sex_men" name="dateformat" type="radio" value="0" />
        <label id="lbl_sex_men" for="dateformat_eu">男</label>
      </td>
      <td style="padding-left: 5px;">
        <input id="sex_women" name="dateformat" type="radio" value="1" />
        <label id="lbl_sex_women" for="dateformat_am">女</label>
      </td>
      <td>
      </td>
    </tr>
    </tbody>
    </table>
    </td>
   </tr>

   <tr>
    <td class="label"> </td>
    <td class="field" colspan="2">
      <div id="termswrap">
        <input id="terms" type="checkbox" name="terms" />
        <label id="lterms" for="terms">以阅读并同意网站条款.</label>
      </div> <!-- /termswrap -->
    </td>
   </tr>
   <tr>
    <td class="label"></td>
    <td class="field" colspan="2">
    <input id="signupsubmit" name="signup" type="submit" value="注册" />
    </td>
   </tr>

   </table>
</form>

更多验证方法的应用请查看http://jqueryvalidation.org/

Javascript 相关文章推荐
xml和web特殊字符
Apr 28 Javascript
jquery 插件实现多行文本框[textarea]自动高度
Mar 04 Javascript
jQuery构造函数init参数分析续
May 13 Javascript
原生js模拟淘宝购物车项目实战
Nov 18 Javascript
基于jquery编写的放大镜插件
Mar 23 Javascript
AngularJS实用基础知识_入门必备篇(推荐)
Jul 10 Javascript
通过 JS 判断页面是否有滚动条的实现方法
Apr 05 Javascript
微信小程序canvas实现刮刮乐效果
Jul 09 Javascript
记录vue项目中遇到的一点小问题
May 14 Javascript
vue实现日历备忘录功能
Sep 24 Javascript
你准备好迎接vue3.0了吗
Apr 28 Javascript
Vue router配置与使用分析讲解
Dec 24 Vue.js
jQuery拖拽插件gridster使用指南
Apr 21 #Javascript
jQuery弹出层插件Lightbox_me使用指南
Apr 21 #Javascript
jQuery提示插件alertify使用指南
Apr 21 #Javascript
JS实现仿google、百度搜索框输入信息智能提示的实现方法
Apr 20 #Javascript
Jquery遍历Json数据的方法
Apr 20 #Javascript
javascript判断变量是否有值的方法
Apr 20 #Javascript
javascript实现校验文件上传控件实例
Apr 20 #Javascript
You might like
php基础教程 php内置函数实例教程
2012/08/21 PHP
关于php操作mysql执行数据库查询的一些常用操作汇总
2013/06/24 PHP
利用PHP判断是否是连乘数字串的方法示例
2017/07/03 PHP
PHP实现的多维数组排序算法分析
2018/02/10 PHP
PHP一个简单的无需刷新爬虫
2019/01/05 PHP
css图片自适应大小
2007/11/28 Javascript
javascript 模拟JQuery的Ready方法实现并出现的问题
2009/12/06 Javascript
JS在IE和FireFox之间常用函数的区别小结
2010/03/12 Javascript
JS判定是否原生方法
2013/07/22 Javascript
jQuery检测某个元素是否存在代码分享
2015/07/09 Javascript
js右下角弹出提示框示例代码
2016/01/12 Javascript
React Native 搭建开发环境的方法步骤
2017/10/30 Javascript
vue接入腾讯防水墙代码
2019/05/07 Javascript
基于react项目打包css引用路径错误解决方案
2020/10/28 Javascript
Python编写屏幕截图程序方法
2015/02/18 Python
python在windows下实现ping操作并接收返回信息的方法
2015/03/20 Python
Python的Flask框架及Nginx实现静态文件访问限制功能
2016/06/27 Python
Python使用PIL模块生成随机验证码
2017/11/21 Python
Python列表list排列组合操作示例
2018/12/18 Python
Python中按值来获取指定的键
2019/03/04 Python
django如何通过类视图使用装饰器
2019/07/24 Python
Python shelve模块实现解析
2019/08/28 Python
python实现简单成绩录入系统
2019/09/19 Python
Python解析微信dat文件的方法
2020/11/30 Python
美国著名的家居用品购物网站:Bed Bath & Beyond
2018/01/05 全球购物
安全负责人任命书
2014/06/06 职场文书
小学生推普周国旗下讲话稿
2014/09/21 职场文书
乡镇领导班子批评与自我批评材料
2014/09/23 职场文书
幼儿园教师自我评价
2015/03/04 职场文书
员工加薪申请报告
2015/05/15 职场文书
归途列车观后感
2015/06/17 职场文书
2016应届毕业生实习评语
2015/12/01 职场文书
Python爬取英雄联盟MSI直播间弹幕并生成词云图
2021/06/01 Python
JavaScript利用html5新方法操作元素类名详解
2021/11/27 Javascript
英国数字版游戏销量周榜公布 《小缇娜的奇幻之地》登顶
2022/04/03 其他游戏
nginx rewrite功能使用场景分析
2022/05/30 Servers