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 相关文章推荐
ppk谈JavaScript style属性
Oct 10 Javascript
js 发个判断字符串是否为符合标准的函数
Apr 27 Javascript
jquery选择器之内容过滤选择器详解
Jan 27 Javascript
基于jquery的手风琴图片展示效果实现方法
Dec 16 Javascript
jquery比较简洁的软键盘特效实现方法
Mar 19 Javascript
jquery.cookie.js用法实例详解
Dec 25 Javascript
JS功能代码集锦
May 04 Javascript
基于jQuery实现的查看全文功能【实用】
Dec 11 Javascript
微信小程序图片自适应支持多图实例详解
Jun 21 Javascript
原生JS实现的简单小钟表功能示例
Aug 30 Javascript
详解vuex中action何时完成以及如何正确调用dispatch的思考
Jan 21 Javascript
vue点击按钮实现简单页面的切换
Sep 08 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中利用XML技术构造远程服务(下)
2006/10/09 PHP
PHP添加Xdebug扩展的方法
2014/02/12 PHP
修改发贴的编辑功能
2007/03/07 Javascript
Mootools 1.2教程 同时进行多个形变动画
2009/09/15 Javascript
避免 showModalDialog 弹出新窗体的原因分析
2010/05/31 Javascript
js页面跳转常用的几种方式
2010/11/25 Javascript
Jquery插件 easyUI属性汇总
2011/01/19 Javascript
js实现翻页后保持checkbox选中状态的实现方法
2012/11/03 Javascript
jquery弹出框的用法示例(一)
2013/08/26 Javascript
javascript实现信息增删改查的方法
2015/07/25 Javascript
基于jquery步骤进度条源码分享
2015/11/12 Javascript
jQuery中animate的几种用法与注意事项
2016/12/12 Javascript
利用Node.js+Koa框架实现前后端交互的方法
2017/02/27 Javascript
JS正则表达式验证账号、手机号、电话和邮箱是否合法
2017/03/08 Javascript
jQuery 防止相同的事件快速重复触发方法
2018/02/08 jQuery
Javascript实现异步编程的过程
2018/06/18 Javascript
vue实例中data使用return包裹的方法
2018/08/27 Javascript
Node.js系列之安装配置与基本使用(1)
2019/08/30 Javascript
Angular8 简单表单验证的实现示例
2020/06/03 Javascript
[58:58]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第二场
2018/04/05 DOTA
从零学python系列之数据处理编程实例(一)
2014/05/22 Python
python实现JAVA源代码从ANSI到UTF-8的批量转换方法
2015/08/10 Python
Python实现判断给定列表是否有重复元素的方法
2018/04/11 Python
Python增强赋值和共享引用注意事项小结
2019/05/28 Python
python绘制无向图度分布曲线示例
2019/11/22 Python
Python中类似于jquery的pyquery库用法分析
2019/12/02 Python
jupyter notebook 重装教程
2020/04/16 Python
完美解决TensorFlow和Keras大数据量内存溢出的问题
2020/07/03 Python
美国性感女装网站:bebe
2017/03/04 全球购物
天巡全球:Skyscanner Global
2017/06/20 全球购物
Shop Apotheke瑞士:您的健康与美容网上商店
2019/10/09 全球购物
C语言开发工程师测试题
2016/12/20 面试题
制药工程专业应届生求职信
2013/09/24 职场文书
能源工程专业应届生求职信
2014/03/01 职场文书
2016暑期社会实践新闻稿
2015/11/25 职场文书
mysql中DCL常用的用户和权限控制
2022/03/31 MySQL