jQuery插件Validation表单验证详解

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日

相关文章

  • Dwr3.0纯注解(纯Java Code配置)配置与应用浅析一之零配置文件化

    Dwr3.0纯注解(纯Java Code配置)配置与应用浅析一之零配置文件化 什么是Dwr3.0纯注解配置 Dwr(Direct Web Remoting) 是一种轻量级的远程框架,它可以实现web端的无刷新操作、异步处理,极大地提高了web应用的用户体验。 需要说明的是,这里提到的Dwr3.0纯注解配置,与使用传统的dwr.xml配置文件的方式相对。 Dw…

    JavaScript 2023年5月28日
    00
  • 解决layui的form里的元素进行动态生成,验证失效的问题

    针对“解决layui的form里的元素进行动态生成,验证失效的问题”,我们可以采用以下攻略: 动态生成表单元素 在动态生成表单元素的过程中,需要为每一个生成的表单元素添加 layui 的 form 类属性,示例如下: <input type=”text” name=”username” lay-verify=”required” class=”layu…

    JavaScript 2023年6月10日
    00
  • 通过javascript进行UTF-8编码的实现方法

    下面是详细的攻略,你可以按照以下步骤进行UTF-8编码的实现。 第一步:将字符串转化为Unicode码位 我们首先需要将字符串转化为Unicode码位,这是为了确保所有的字符都能够被正确的编码,无论是ASCII字符还是非ASCII字符。在Javascript中,可以使用charCodeAt()方法来获取字符串中每个字符的Unicode码位,然后将它们存储在一…

    JavaScript 2023年5月20日
    00
  • Python Selenium操作Cookie的实例方法

    下面是详细讲解“Python Selenium操作Cookie的实例方法”的完整攻略: 什么是Cookie? 在网站上保存数据的一种机制,通常由服务器发送给用户的Web浏览器,并存储在本地机器上。当浏览器再次尝试连接到相同的服务器时,将发送之前存储的Cookie。 Selenium操作Cookie Selenium是一个支持Web驱动的自动化测试工具,包含一…

    JavaScript 2023年6月11日
    00
  • js防抖函数和节流函数使用场景和实现区别示例分析

    JS防抖函数和节流函数是前端开发中常用的函数优化方法,可以有效提升页面性能和用户体验。它们的使用场景和实现区别如下: 防抖函数 防抖函数的作用是在函数触发频繁的情况下,限制函数执行的次数,确保函数在触发后的一定时间内只执行一次。 使用场景 防抖函数通常用于以下场景: 搜索框输入联想:用户在输入框中快速输入字符时,会触发搜索请求,而防抖函数可以限制请求发送的次…

    JavaScript 2023年5月28日
    00
  • 浅谈javascript对象模型和function对象

    我将根据您的要求,为您详细讲解Javascript对象模型和function对象的相关知识。 Javascript对象模型 Javascript对象模型(Object Model)是一种按照一定规则组织和管理代码的方式。在Javascript中,所有的事物都是对象(Object),包括数组、函数等。对象是通过“对象字面量”(Literal)创建的,也可以通过…

    JavaScript 2023年5月27日
    00
  • BootStrap中的表单大全

    BootStrap中的表单大全 BootStrap是目前使用最为广泛的前端框架之一,其中表单是网站开发中比较常用的组件之一。本文将对BootStrap中的表单进行详细讲解,包括表单组成、常用表单类型、表单验证等内容,帮助读者在BootStrap中更好地使用表单组件。 表单组成 在BootStrap中,一个表单必须包含以下几个组成部分: form标签:定义表单…

    JavaScript 2023年6月10日
    00
  • 浅谈JavaScript作用域和闭包

    浅谈JavaScript作用域和闭包 什么是JavaScript作用域? 在 JavaScript 中,每个变量、函数都有访问的范围,这就是作用域。JavaScript 中的作用域可以是全局作用域和局部作用域。 全局作用域 全局作用域可以定义在 JavaScript 代码的最外层范围内,即最顶层作用域。在全局作用域内定义的变量和函数可以在代码的任何地方访问。…

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