jQuery插件Validation表单验证详解

yizhihongxing

jQuery插件Validation表单验证详解

表单验证是Web开发中非常重要的一环,jQuery插件Validation就是基于jQuery实现的一款表单验证插件,非常方便实用。本篇文章将会详细讲解jQuery插件Validation的使用方法,以及常见的验证规则和自定义验证规则。

页面引入jQuery和jQuery Validation插件

首先,将jQuery和jQuery Validation插件引入到页面中:

<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
<script src="https://cdn.bootcss.com/jquery-validate/1.19.0/jquery.validate.min.js"></script>

基本使用方法

HTML表单

要使用jQuery Validation插件,首先需要有一个HTML表单:

<form id="myForm">
  <label for="username">Username:</label>
  <input type="text" name="username" id="username">
  <br><br>
  <label for="password">Password:</label>
  <input type="password" name="password" id="password">
  <br><br>
  <input type="submit" value="Submit">
</form>

基本验证规则

接下来是基本验证规则,调用validate()方法即可:

$("#myForm").validate();

调用validate()方法后,就会自动对表单中的input元素进行验证。默认情况下,用户名和密码不能为空。

自定义验证规则

如果需要自定义验证规则,可以使用rules()方法,这里以验证密码强度为例:

$.validator.addMethod("strongPassword", function(value, element) {
    return this.optional(element) || /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$/.test(value);
}, "Your password must be at least 8 characters long and contain at least one letter and one number.");

$("#myForm").validate({
    rules: {
        password: {
            required: true,
            strongPassword: true
        }
    }
});

首先使用addMethod()方法添加自定义规则,这里的规则是密码长度不能少于8,且必须包含至少一个字母和一个数字。

然后在validate()方法中,使用rules()方法指定验证规则。

错误提示信息定制

如果默认的错误提示信息不能满足需求,可以使用messages()方法自定义错误提示信息:

$("#myForm").validate({
    messages: {
        username: {
            required: "Username is required."
        },
        password: {
            required: "Password is required.",
            strongPassword: "Your password must be at least 8 characters long and contain at least one letter and one number."
        }
    }
});

messages()方法中,使用对象指定每个表单项对应的错误提示信息。

示例1:带有“验证码”的表单验证

下面是一个带有验证码的表单验证:

<form id="myForm2">
  <div>
    <label for="username">Username:</label>
    <input type="text" name="username" id="username">
  </div>
  <div>
    <label for="password">Password:</label>
    <input type="password" name="password" id="password">
  </div>
  <div>
    <label for="confirm_password">Confirm Password:</label>
    <input type="password" name="confirm_password" id="confirm_password">
  </div>
  <div>
    <label for="email">Email:</label>
    <input type="email" name="email" id="email">
  </div>
  <div>
    <label for="phone">Phone:</label>
    <input type="tel" name="phone" id="phone">
  </div>
  <div>
    <label for="captcha">Captcha:</label>
    <input type="text" name="captcha" id="captcha">
    <img src="captcha.php" id="captcha_img">
    <a href="#" id="new_captcha">New Captcha</a>
  </div>
  <div>
    <input type="submit" value="Submit">
  </div>
</form>

这里的验证码是一个图片,需要重新生成。下面是Javascript代码:

$.validator.addMethod("strongPassword", function(value, element) {
    return this.optional(element) || /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$/.test(value);
}, "Your password must be at least 8 characters long and contain at least one letter and one number.");

$("#myForm2").validate({
    rules: {
        username: "required",
        password: {
            required: true,
            strongPassword: true
        },
        confirm_password: {
            equalTo: "#password"
        },
        email: {
            required: true,
            email: true
        },
        phone: {
            required: true,
            number: true
        },
        captcha: {
            required: true,
            remote: "check-captcha.php" // 远程验证验证码是否正确
        }
    },
    messages: {
        captcha: {
            remote: "Wrong captcha."
        }
    }
});

$("#new_captcha").click(function() {
    // 重新生成验证码
    $("#captcha_img").attr('src', 'captcha.php');
    return false;
});

在验证规则中,使用了remote规则实现远程验证。当验证验证码输入是否正确时,会向服务器发送Ajax请求,再返回验证结果。这里的check-captcha.php代码类似于下面这样:

<?php
session_start();
if (strtolower($_POST["captcha"]) == strtolower($_SESSION["captcha"])) {
    echo "true";
} else {
    echo "false";
    exit;
}
?>

示例2:动态添加表单项

下面是一个动态添加表单项的例子,点击Add按钮,可以添加任意多个input输入框:

<form id="myForm3">
  <div>
    <label for="name1">Name1:</label>
    <input type="text" name="name1" id="name1">
  </div>
  <div id="dynamicForm">
  </div>
  <button type="button" id="btnAdd">Add</button>
  <input type="submit" value="Submit">
</form>

点击Add按钮后,动态添加表单项:

$("#btnAdd").click(function() {
    var div = $("<div />");
    div.html(getTemplateHtml());
    $("#dynamicForm").append(div);
});

function getTemplateHtml() {
    var count = jQuery("#dynamicForm > div").length + 1;
    var html = '<div><label for="name' + count + '">Name' + count + ':</label>' +
               '  <input type="text" name="name' + count + '" id="name' + count + '">' +
               '</div>';
    return html;
}

在这里只验证了动态添加的input是否为空:

$("#myForm3").validate({
    rules: {
        name1: "required"
    },
    messages: {
        name1: "Required"
    }
});

总结

以上是jQuery插件Validation表单验证的详细攻略,后续使用中会遇到很多其他的验证规则,可以在官方文档中查询相关信息。不仅如此,我们还可以通过自定义方法来增强Validation的功能,使其在实际使用中更加灵活、方便。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jQuery插件Validation表单验证详解 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • JavaScript HTML DOM 元素 (节点)新增,编辑,删除操作实例分析

    对于JavaScript HTML DOM 元素 (节点)新增,编辑,删除操作实例分析,我们可以按照以下步骤进行攻略。 1. 简介 在前端开发中,我们经常需要对HTML文档中的元素进行操作。HTML DOM (Document Object Model)提供了一系列操作HTML文档元素的方法,使得我们可以方便地实现对元素的新增、编辑和删除等操作。 2. 元素…

    JavaScript 2023年6月10日
    00
  • Java返回可变引用对象问题整理

    让我来详细讲解一下Java中返回可变引用对象问题的完整攻略。 什么是可变引用对象 在Java中,一个类分为基本类型和引用类型两种类型。基本类型的数据在赋值时直接复制了值本身,不会影响到原来的数据;而引用类型则是在赋值时复制的是引用,这个引用指向的是真正的数据空间。当一个引用类型变量被赋值时,它指向的地址就发生了改变,但是它所指向的对象的地址没有改变。 那么,…

    JavaScript 2023年6月11日
    00
  • js获取指定字符前/后的字符串简单实例

    当我们在开发 Javascript 程序时,有时候需要从一个字符串中截取出前面或后面一段字符串,这就需要使用字符串的截取操作了。在 Javascript 中,我们可以使用一些简单的方法来获取指定字符前/后的字符串。 获取指定字符后的字符串 在 Javascript 中,我们可以使用字符串的 substring() 方法来获取指定字符后的字符串。这个方法接受两…

    JavaScript 2023年5月28日
    00
  • JavaScript中的数组操作介绍

    当谈到JavaScript时,数组(Array)通常是最常用的数据结构之一。尤其在现代Web开发中,数组操作非常重要。下面我们将详细介绍JavaScript中的数组操作,内容包括以下几点: 声明和初始化数组 常用的数组操作方法 数组迭代器 示例 1. 声明和初始化数组 在JavaScript中声明和初始化数组有多种方式。最常见的方式是使用Array构造函数来…

    JavaScript 2023年5月18日
    00
  • 原生JS面向对象实现打砖块小游戏

    一、前言 打砖块小游戏是经典的游戏之一,其规则简单,玩法有趣且易上手。本篇攻略将带领大家使用原生JS面向对象的方式来实现打砖块小游戏。 二、需求分析 打砖块小游戏的基本需求如下: 游戏界面要有一个球、多个砖块和一个挡板,球碰到砖块或者挡板之后反弹。 球和挡板可以通过鼠标或者键盘来控制。 游戏结束条件:砖块被撞完或者球跌落屏幕下方。 三、实现步骤 Step 1…

    JavaScript 2023年6月10日
    00
  • JavaScript中判断为整数的多种方式及保留两位小数的方法

    JavaScript中判断为整数的多种方式及保留两位小数的方法 判断为整数的多种方式 在JavaScript中,判断一个数是否为整数是经常需要用到的操作。下面列出了常见的几种方法: 取模运算 利用数学中取模运算的特性,即整数x对于任意不等于0的正整数y,x%y的结果只可能是0到y-1之间的整数,如果x % 1等于0,则说明它为整数。具体代码如下: funct…

    JavaScript 2023年6月10日
    00
  • js定时器的使用(实例讲解)

    JS定时器是一种常见的编程工具,可以用于在一定时间间隔内执行一些具体的操作或调用某一函数。使用JS定时器,可以增强网站的交互性和用户体验度。 下面,我们来详细讲解JS定时器的使用步骤和实例讲解。 步骤一:设置定时器 在JavaScript中,使用setInterval()方法可以创建一个定时器。这个方法有两个参数:要运行的函数名和定时器开始运行的时间间隔(单…

    JavaScript 2023年5月27日
    00
  • 动态调用CSS文件的JS代码

    动态调用 CSS 文件的 JS 代码是一种在页面加载时引入 CSS 文件的方式,这种方式可以使页面的开发更加灵活,可以根据不同的需求加载不同的 CSS 文件。下面是实现动态调用 CSS 文件的 JS 代码的完整攻略: 创建一个空的 link 元素 在页面中创建一个空的 link 元素,它的 href 属性指向 CSS 文件的路径,rel 属性为 styles…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部