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 相关文章推荐
Jsonp 跨域的原理以及Jquery的解决方案
Jun 27 Javascript
JavaScript原型及原型链终极详解
Jan 04 Javascript
JS小数运算出现多为小数问题的解决方法
Jun 02 Javascript
JS中对Cookie的操作详解
Aug 05 Javascript
完美解决浏览器跨域的几种方法(汇总)
May 08 Javascript
JS基于递归实现网页版计算器的方法分析
Dec 20 Javascript
JS字符串去除连续或全部重复字符的实例
Mar 08 Javascript
Postman的下载及安装教程详解
Oct 16 Javascript
antd Upload 文件上传的示例代码
Dec 14 Javascript
jquery+php后台实现省市区联动功能示例
May 23 jQuery
关于vue2强制刷新,解决页面不会重新渲染的问题
Oct 29 Javascript
一百多行代码实现react拖拽hooks
Mar 23 Javascript
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(5) 类和对象
2010/02/16 PHP
文件上传之SWFUpload插件(代码)
2015/07/30 PHP
php多线程实现方法及用法实例详解
2015/10/26 PHP
Android AsyncTack 异步任务实例详解
2016/11/02 PHP
PHP htmlspecialchars() 函数实例代码及用法大全
2018/09/18 PHP
关于使用runtimeStyle属性问题讨论文章
2007/03/08 Javascript
jQuery中parents()和parent()的区别分析
2014/10/28 Javascript
使用Chrome调试JavaScript的断点设置和调试技巧
2014/12/16 Javascript
浅谈javascript 函数内部属性
2015/01/21 Javascript
JavaScript中模拟实现jsonp
2015/06/19 Javascript
js性能优化技巧
2015/11/29 Javascript
信息页文内画中画广告js实现代码(文中加载广告方式)
2016/01/03 Javascript
浅谈javascript中的call、apply、bind
2016/03/06 Javascript
浅谈Javascript中的12种DOM节点类型
2016/08/19 Javascript
js 弹出虚拟键盘修改密码的简单实例
2016/10/10 Javascript
JS调用某段SQL语句的方法
2016/10/20 Javascript
基于jQuery实现左侧菜单栏可折叠功能
2016/12/27 Javascript
利用Blob进行文件上传的完整步骤
2018/08/02 Javascript
vue3.0 CLI - 2.5 - 了解组件的三维
2018/09/14 Javascript
原生JS实现汇率转换功能代码实例
2020/05/13 Javascript
Vue SPA 首屏优化方案
2021/02/26 Vue.js
用python写asp详细讲解
2013/12/16 Python
python编程开发之日期操作实例分析
2015/11/13 Python
Python中文件的读取和写入操作
2018/04/27 Python
python docx 中文字体设置的操作方法
2018/05/08 Python
python fuzzywuzzy模块模糊字符串匹配详细用法
2019/08/29 Python
CSS3绘制超炫的上下起伏波动进度加载动画
2016/04/21 HTML / CSS
css3一个简易的 LED 数字时钟实现方法
2020/01/15 HTML / CSS
硅酸盐工业控制专业应届生求职信
2013/11/02 职场文书
技术人员面试提纲
2013/11/28 职场文书
12岁生日演讲稿
2014/05/14 职场文书
协议书范文
2015/01/27 职场文书
小学三年级作文之写景
2019/11/05 职场文书
Python实现查询剪贴板自动匹配信息的思路详解
2021/07/09 Python
一些让Python代码简洁的实用技巧总结
2021/08/23 Python
Python实现打乒乓小游戏
2021/09/25 Python