JQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求。该插件捆绑了一套有用的验证方法,包括 URL 和电子邮件验证,同时提供了一个用来编写用户自定义方法的 API。

使用JQuery Validate之前首先引入以下两个文件:jquery-1.11.1.js jquery.validate.js。下载链接:https://jqueryvalidation.org。

菜鸟教程提供的 1.14.0 版本下载地址:http://static.runoob.com/download/jquery-validation-1.14.0.zip

直接上实例,html代码如下:

 <div id="form_con">

        <form class="cmxform" id="myform" method="post" action="">

            <table cellspacing="0" cellpadding="0">

                <tbody>

                    <tr>

                        <td>用户名</td>

                        <td><input type="text" id="username" name="username" class="required" /></td>

                        <td></td>

                    </tr>

                    <tr>

                        <td>密码</td>

                        <td><input id="password" type="password" name="firstpwd" /></td>

                        <td></td>

                    </tr>

                    <tr>

                        <td>验证密码</td>

                        <td><input type="password" name="secondpwd" /></td>

                        <td></td>

                    </tr>

                    <tr>

                        <td>性别</td>

                        <td><input id="sex" type="radio" name="sex" />男<input type="radio" name="sex" />女</td>

                        <td></td>

                    </tr>

                    <tr>

                        <td>年龄</td>

                        <td><input type="text" name="age" /></td>

                        <td></td>

                    </tr>

                    <tr>

                        <td>邮箱</td>

                        <td><input type="text" name="email" /></td>

                        <td></td>

                    </tr>

                    <tr>

                        <td>时间</td>

                        <td><input type="date" name="time" /></td>

                        <td></td>

                    </tr>

                    <tr>

                        <td>个人网页</td>

                        <td><input type="text" name="purl" /></td>

                        <td></td>

                    </tr>

                    <tr>

                        <td>电话</td>

                        <td><input type="text" name="telephone" /></td>

                        <td></td>

                    </tr>

                    <tr>

                        <td>附件</td>

                        <td><input type="file" name="afile"/></td>

                        <td></td>

                    </tr>

                    <tr><td colspan="3" ><input type="submit" name="submit" value="提交" /><button>重置</button></td></tr>

                </tbody>          

            </table>

        </form>

  </div>  

新建一个validated.js文件用于验证以上表单数据:

$(function(){
var validator = $("#myform").validate({ debug: true, //调试模式取消submit的默认提交功能 errorClass: "haha", //默认为错误的样式类为:error focusInvalid: false, focusCleanup: true, onkeyup: false, errorElement: "span", submitHandler: function(form) { //表单提交句柄,为一回调函数,带一个参数:form alert("提交表单"); form.submit(function()
{
return false;
}); //提交表单 }, rules: { //定义验证规则,其中属性名为表单的name属性 username: { required: true, minlength: 2, remote: {
url: "js/test.txt", //后台处理程序
type: "get", //数据发送方式
//dataType: "text", //接受数据格式
data: { //要传递的数据
username: function() {
return $("#username").val();
}
}
}
//response.getwrite().write("true") }, firstpwd: { required: true, //minlength: 6 rangelength: [6, 8] }, secondpwd: { required: true, equalTo: "#password" }, sex: { required: true }, age: { required: true, range: [0, 120] }, email: { required: true, email: true }, telephone:{ required:true, isTelephone:true }, purl: { required: true, url: true }, afile: { required: true, accept: "xls,doc,rar,zip" } }, messages: { //自定义验证消息 username: { required: "用户名是必需的!", minlength: $.validator.format("用户名至少要{0}个字符!"), remote: $.validator.format("{0}已经被占用") }, firstpwd: { required: "密码是必需的!", rangelength: $.validator.format("密码要在{0}-{1}个字符之间!") }, secondpwd: { required: "密码验证是必需的!", equalTo: "密码验证需要与密码一致" }, sex: { required: "性别是必需的" }, age: { required: "年龄是必需的", range: "年龄必须介于{0}-{1}之间" }, email: { required: "邮箱是必需的!", email: "请输入正确的邮箱地址(例如 myemail@163.com)" }, telephone:{ required: "手机号码是必需的!" }, purl: { required: "个人主页是必需的", url: "请输入正确的url格式,如 http://www.domainname.com" }, afile: { required: "附件是必需的!", accept: "只接收xls,doc,rar,zip文件" } }, errorPlacement: function(error, element) { //验证消息放置的地方 error.appendTo(element.parent("td").next("td")); }, highlight: function(element, errorClass) { //针对验证的表单设置高亮 $(element).addClass(errorClass); }, success: function(label) { label.addClass("valid").text("Ok!") } /*, errorContainer: "#error_con", //验证消息集中放置的容器 errorLabelContainer: "#error_con ul", //存放消息无序列表的容器 wrapper: "li", //将验证消息用无序列表包围 validClass: "valid", //通过验证的样式类 errorElement: "span", //验证标签的名称,默认为:label success: "valid" //验证通过的样式类 */ }); // 手机号码验证
jQuery.validator.addMethod("isTelephone", function(value, element) {
var tel = /^1[358][0-9]{9}$/;
return tel.test(value);
}, "请正确填写您的手机号码"); $("button").click(function() { validator.resetForm(); }); });

注意:

1.username属性是通过远程验证的,通过remote连接后台程序进行验证。代码如下:

remote: {
url: "js/test.txt", //后台处理程序
type: "get", //数据发送方式
//dataType: "text", //接受数据格式
data: { //要传递的数据
username: function() {
return $("#username").val();
}
}

2.telephone元素的验证是自定义添加的方法,代码如下:

 // 手机号码验证
jQuery.validator.addMethod("isTelephone", function(value, element) {
var tel = /^1[358][0-9]{9}$/;
return tel.test(value);
}, "请正确填写您的手机号码");

addmethod里面有三个参数:name   function   message。 方法名称 调用方法  提示信息。

3.设置提示信息的地方:

 errorPlacement: function(error, element) {  //验证消息放置的地方

            error.appendTo(element.parent("td").next("td"));

        },

可将常用的验证方法收集好,写成一个js文件,一般写在 additional-methods.js 文件中,方便以后自己代码调用。未完待续。。。

JQuery.Validate学习笔记的更多相关文章

  1. jQuery源代码学习笔记_工具函数_noop/error/now/trim

    jQuery源代码学习笔记_工具函数_noop/error/now/trim jquery提供了一系列的工具函数,用于支持其运行,今天主要分析noop/error/now/trim这4个函数: 1.n ...

  2. jQuery 基础学习笔记总结(一)

    Jquery 学习笔记 总结 感想: 此前在做站点时用到过jquery相关,特别是Ajax相关技术.但是并没有系统的进行学习和了解Jquery的强大的功能,趁这几天跟着资料基本的了解下Jquery的特 ...

  3. jquery validate学习心得

    据说,javascript最初的由来就是为了解决表单的验证问题,当然现在的js已经能够用来做各种各样炫酷的效果,不过表单验证一直以来都是js很重要的一个用途(在博客园第一篇博客,不知道说些什么开头~~ ...

  4. jQuery的学习笔记4

    JQuery学习笔记3 2.9属性选择器 属性选择器就是根据元素的属性和属性值作为过滤条件,来匹配对应的DOM元素.属性选择器一般都以中括号作为起止分界符 它的形式如下: [attribute] [a ...

  5. jQuery的学习笔记2

    jQuery学习笔记 Day two Chapter two 选择器 类选择器 语法结构:$(“.classname”) javascript里面没有类选择器所以这个时候使用jQuery会更加的简便 ...

  6. jQuery的学习笔记

    JQuery学习笔记 Chapter one初识jQuery 1.2测试jQuery 在jQuery库中,$是jQuery的别名,如:$()相当于jQuery() 注意:在使用JQuery进行开发的时 ...

  7. jquery validate使用笔记

    1 表单验证的准备工作 在开启长篇大论之前,首先将表单验证的效果展示给大家.     1.点击表单项,显示帮助提示 2.鼠标离开表单项时,开始校验元素  3.鼠标离开后的正确.错误提示及鼠标移入时的帮 ...

  8. Jquery Mobile 学习笔记(一)

    1.模拟器,IOS:XCODE GENYMOTION  ANDROID:ECLIPSE GENYMOTION 2.jquery mobile data-role=page 代表一个页面 data-po ...

  9. 【jQuery UI 1.8 The User Interface Library for jQuery】.学习笔记.4.Tabs控件

    之前,我们已经介绍了 jQuery UI 库,CSS 框架.下面,我们将学习这些有增强可视化效果,高度可配置的用户交互组件. Tab 的特性是,点击 tab 后,会高亮该 tab,并显示他的关联con ...

随机推荐

  1. 设计模式--适配器模式(Adapter)详解

    适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题.主要分为三类:类的适配器模式.对象的适配器模式.接口的适配器模式. 01.类的适配器模式 核心 ...

  2. Oracle Nested table、Record

    1.如何在PL/SQL中创建和使用Nested table;2.如何在PL/SQL中创建和使用Record; 1.如何在PL/SQL中创建和使用Nested table DECLARE /**创建一个 ...

  3. 利用crosstool-ng自动化编译交叉编译环境(转)

    原文地址:http://www.bootc.net/archives/2012/05/26/how-to-build-a-cross-compiler-for-your-raspberry-pi/ A ...

  4. SQL数据透视

    透视是一种通过聚合和旋转把数据行转换成数据列的技术.当透视数据时,需要确定三个要素:要在行(分组元素)中看到的元素,要在列(扩展元素)上看到的元素,要在数据部分看到的元素(聚合元素). SQL Ser ...

  5. Windows下如何安装MongoDB

    下载地址: http://www.mongodb.org/downloads 我下载的是:mongodb-win32-x86_64-2008plus-2.6.6 解压到:D:\soft 同时在该目录下 ...

  6. javascript总结37:DOM:innerText 和 innerHTML

    innerText 和 innerHTML 作用: 给双标签的元素设置内容/获取双标签里面的内容 不同点: innerText 只是用于获取文本或设置文本 innerHTML 不仅可以用于设置/获取文 ...

  7. JavaEE互联网轻量级框架整合开发(书籍)阅读笔记(11):XML和Annotation装配Bean的混合使用(@ImportResource)

    一.XML和Annotation装配Bean如何合理使用 引入第三方资源包中类的时候,建议使用XML配置,而使用自己编写的Java类的时候,推荐使用Annotation注解配置Bean. 二.关于注解 ...

  8. MongoDB整理笔记の移除Shard Server

    有些时候有于硬件资源有限,所以我们不得不进行一些回收工作,下面我们就要将刚刚启用的Shard Server 回收,系统首先会将在这个即将被移除的Shard Server 上的数据先平均分配到其它的Sh ...

  9. centos 6.5下安装mysql

    1.检测系统是否已经安装过mysql或其依赖,若已装过要先将其删除,否则第4步使用yum安装时会报错: 1 # yum list installed | grep mysql 2 mysql-libs ...

  10. SSH密钥登陆

    参考: SSH公钥登录原理 比如git可以生成公钥,然后用有权限的账户把他加到仓库上,以后就可以通过公钥登陆了.不需要像https那样需要有账号,但是权限管理就不细了. 有时候如果仓库上添加了多个公钥 ...