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 相关文章推荐
JS获取后台Cookies值的小例子
Mar 04 Javascript
JS实现自动变化的导航菜单效果代码
Sep 09 Javascript
javascript实现checkbox复选框实例代码
Jan 10 Javascript
jQuery javascript获得网页的高度与宽度的实现代码
Apr 26 Javascript
JavaScript代码实现图片循环滚动效果
Mar 19 Javascript
Three.js学习之几何形状
Aug 01 Javascript
利用jsonp跨域调用百度js实现搜索框智能提示
Aug 24 Javascript
jquery与ajax获取特殊字符实例详解
Jan 08 Javascript
jQuery实现IE输入框完成placeholder标签功能的方法
Sep 20 jQuery
vue地区选择组件教程详解
May 04 Javascript
javascript设计模式 ? 装饰模式原理与应用实例分析
Apr 14 Javascript
Vue组件简易模拟实现购物车
Dec 21 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自动识别字符集并完成转码详解
2013/08/02 PHP
js对象关系图 方便dom操作
2012/03/18 Javascript
javascript里模拟sleep(两种实现方式)
2013/01/25 Javascript
jQuery select表单提交省市区城市三级联动核心代码
2014/06/09 Javascript
jQuery学习之DOM节点的插入方法总结
2017/01/22 Javascript
深入理解JavaScript继承的多种方式和优缺点
2017/05/12 Javascript
JS鼠标滚动分页效果示例
2017/07/05 Javascript
微信小程序网络封装(简单高效)
2018/08/06 Javascript
jquery实现购物车基本功能
2019/10/25 jQuery
微信小程序图片加载失败时替换为默认图片的方法
2019/12/09 Javascript
vue实现微信浏览器左上角返回按钮拦截功能
2020/01/18 Javascript
Python实现根据指定端口探测服务器/模块部署的方法
2014/08/25 Python
举例讲解Python面向对象编程中类的继承
2016/06/17 Python
Python如何快速上手? 快速掌握一门新语言的方法
2017/11/14 Python
使用Python实现将list中的每一项的首字母大写
2019/06/11 Python
33个Python爬虫项目实战(推荐)
2019/07/08 Python
基于python的列表list和集合set操作
2019/11/24 Python
Python编程快速上手——正则表达式查找功能案例分析
2020/02/28 Python
python3中sorted函数里cmp参数改变详解
2020/03/12 Python
详细分析Python可变对象和不可变对象
2020/07/09 Python
解决Python import .pyd 可能遇到路径的问题
2021/03/04 Python
Too Faced官网:美国知名彩妆品牌
2017/03/07 全球购物
美国伊甸园兄弟种子公司:Eden Brothers
2018/07/01 全球购物
C/C++程序员常见面试题一
2012/12/08 面试题
写给学生的新学期寄语
2014/01/18 职场文书
反腐倡廉演讲稿
2014/05/22 职场文书
公司经理任命书
2014/06/05 职场文书
迎新晚会策划方案
2014/06/13 职场文书
学校副校长四风对照检查材料整改措施
2014/09/25 职场文书
教师政风行风评议心得体会
2014/10/21 职场文书
幼儿教师小班个人总结
2015/02/05 职场文书
志愿服务心得体会
2016/01/15 职场文书
《女娲补天》读后感5篇
2019/12/31 职场文书
使用Golang的channel交叉打印两个数组的操作
2021/04/29 Golang
Z-Order加速Hudi大规模数据集方案分析
2022/03/31 Servers
JS中forEach()、map()、every()、some()和filter()的用法
2022/05/11 Javascript