jQuery实现动态表单验证时文本框抖动效果完整实例

下面是“jQuery实现动态表单验证时文本框抖动效果完整实例”的完整攻略:

一、实现原理

在实现表单验证时,当用户输入错误或者未输入时,我们需要给出错误提示。为了提高提示的视觉效果,在文本框出现抖动的动画后,再展示错误提示信息。

具体实现过程如下:

  1. 给输入框添加失去焦点的事件,当输入框失去焦点时对输入框的值进行验证;
  2. 如果验证不通过,使用jQuery的动画效果来使输入框发生抖动,再给出错误提示信息;如果验证通过,则不需要进行动画;
  3. 在动画结束后,将错误提示信息隐藏。

二、具体实现步骤

以下是表单验证的完整例子,包括用户名、密码、联系方式的验证:

  1. HTML 代码
<form>
  <div>
    <label>用户名:</label>
    <input type="text" id="username"/>
    <span class="error">用户名不能为空</span>
  </div>
  <div>
    <label>密码:</label>
    <input type="password" id="password"/>
    <span class="error">密码不能为空</span>
  </div>
  <div>
    <label>联系方式:</label>
    <input type="text" id="phone"/>
    <span class="info">请填写正确的联系方式</span>
  </div>
  <button type="submit">提交</button>
</form>
  1. CSS 代码
.error {
  color: red;
  display: none;
}

.info {
  color: gray;
  display: none;
}
  1. JavaScript 代码
$(document).ready(function() {
  $("#username").blur(function() {
    var username = $(this).val();
    if (!username) {
      $(this).animate({left: "-10px"}, 50).animate({left: "10px"}, 100)
             .animate({left: "-10px"}, 100).animate({left: "10px"}, 100)
             .animate({left: "0px"}, 50);
      $(this).siblings(".error").show();
    } else {
      $(this).siblings(".error").hide();
    }
  });

  $("#password").blur(function() {
    var password = $(this).val();
    if (!password) {
      $(this).animate({left: "-10px"}, 50).animate({left: "10px"}, 100)
             .animate({left: "-10px"}, 100).animate({left: "10px"}, 100)
             .animate({left: "0px"}, 50);
      $(this).siblings(".error").show();
    } else {
      $(this).siblings(".error").hide();
    }
  });

  $("#phone").blur(function() {
    var phone = $(this).val();
    if (!/^1\d{10}$/.test(phone)) {
      $(this).animate({left: "-10px"}, 50).animate({left: "10px"}, 100)
             .animate({left: "-10px"}, 100).animate({left: "10px"}, 100)
             .animate({left: "0px"}, 50);
      $(this).siblings(".info").show();
    } else {
      $(this).siblings(".info").hide();
    }
  });
});

以上代码的实现原理如下:

  1. 使用jQuery选择器选中username、password和phone等文本框元素,并将失去焦点事件绑定到它们身上;
  2. 在失去焦点事件中,先获取输入框的值,如果该值为空或者不合法(例如联系方式不是符合手机号格式),那么使用animate()函数来使文本框发生左右抖动的效果;
  3. 动画结束后,显示相应的错误/提示信息。

三、示例说明

假设我们要实现一个表单,要求用户在用户名、密码和联系方式中都需要填写内容。

下面是对这个需求的具体实现过程:

  1. 首先,我们需要使用HTML代码定义一个表单,表单中需要包含用户名、密码和联系方式等表单元素;
  2. 然后,通过CSS设置错误提示信息的样式,使它们默认隐藏,当需要展示的时候再显示出来;
  3. 最后,使用jQuery实现失去焦点时提示信息的显示隐藏以及抖动动画等效果即可。

以下是代码示例:

  1. HTML 代码
<form>
  <div>
    <label>用户名:</label>
    <input type="text" id="username"/>
    <span class="error">用户名不能为空</span>
  </div>
  <div>
    <label>密码:</label>
    <input type="password" id="password"/>
    <span class="error">密码不能为空</span>
  </div>
  <div>
    <label>联系方式:</label>
    <input type="text" id="phone"/>
    <span class="info">请填写正确的联系方式</span>
  </div>
  <button type="submit">提交</button>
</form>
  1. CSS 代码
.error {
  color: red;
  display: none;
}

.info {
  color: gray;
  display: none;
}
  1. JavaScript 代码
$(document).ready(function() {
  $("#username").blur(function() {
    var username = $(this).val();
    if (!username) {
      $(this).animate({left: "-10px"}, 50).animate({left: "10px"}, 100)
             .animate({left: "-10px"}, 100).animate({left: "10px"}, 100)
             .animate({left: "0px"}, 50);
      $(this).siblings(".error").show();
    } else {
      $(this).siblings(".error").hide();
    }
  });

  $("#password").blur(function() {
    var password = $(this).val();
    if (!password) {
      $(this).animate({left: "-10px"}, 50).animate({left: "10px"}, 100)
             .animate({left: "-10px"}, 100).animate({left: "10px"}, 100)
             .animate({left: "0px"}, 50);
      $(this).siblings(".error").show();
    } else {
      $(this).siblings(".error").hide();
    }
  });

  $("#phone").blur(function() {
    var phone = $(this).val();
    if (!/^1\d{10}$/.test(phone)) {
      $(this).animate({left: "-10px"}, 50).animate({left: "10px"}, 100)
             .animate({left: "-10px"}, 100).animate({left: "10px"}, 100)
             .animate({left: "0px"}, 50);
      $(this).siblings(".info").show();
    } else {
      $(this).siblings(".info").hide();
    }
  });
});

通过以上代码,我们实现了一个在输入框未填写数据的时候,能够动态抖动并弹出错误提示的功能。再次强调,该攻略含有完整的HTML、CSS、JavaScript代码。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jQuery实现动态表单验证时文本框抖动效果完整实例 - Python技术站

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

相关文章

  • express项目的创建

    前言 前端开发者若要进行后端开发,大多都会选择node.js,在node生态下是有大量框架的,其中最受新手喜爱的便是老牌的express.js,接下来我们就从零创建一个express项目。 安装node 在这里:https://nodejs.org/dist/v16.14.0/node-v16.14.0-x64.msi ,下载后直接安装。 安装完成后,验证是…

    JavaScript 2023年4月17日
    00
  • php实现替换手机号中间数字为*号及隐藏IP最后几位的方法

    PHP实现替换手机号中间数字为*号及隐藏IP最后几位的方法相对简单,下面就具体介绍一下实现的方法及示例。 替换手机号中间数字为*号的方法 方法一:使用正则表达式替换 使用正则表达式是一个常用的方法,即利用preg_replace函数将手机号中间四位数字替换为*号。示例代码如下: $mobile = ‘13811112222’; $pattern = ‘/(\…

    JavaScript 2023年6月10日
    00
  • JavaScript浏览器对象之一Window对象详解

    JavaScript浏览器对象之一Window对象详解 Window对象是JavaScript浏览器对象模型的核心之一,在浏览器开发中扮演着非常重要的角色。本文将主要介绍Window对象的使用方法和相关知识。 Window对象是什么 在JavaScript中,window对象表示浏览器中的窗口或框架,它是JavaScript访问浏览器窗口和框架中所有元素的接…

    JavaScript 2023年5月27日
    00
  • AngularJS实现ajax请求的方法

    下面就是AngularJS实现ajax请求的方法的完整攻略: 1. 准备工作 在使用AngularJS实现ajax请求之前,我们需要引入AngularJS库文件,并在html文件中定义一个<div>元素作为AngularJS的应用入口,并在该元素上定义ng-app指令。 <!DOCTYPE html> <html ng-app=…

    JavaScript 2023年6月11日
    00
  • javascript写的一个表单动态输入提示的代码

    要实现JavaScript写的一个表单动态输入提示,我们需要使用以下步骤: HTML页面中创建表单输入框及提示框的DOM节点; 监听表单输入框的keyup事件,获取输入框中输入的内容; 根据输入的内容动态生成提示框中的内容; 实现鼠标移动到提示框中的选项可以高亮并填充到输入框中; 实现键盘上下键可以在提示框中切换选项并填充到输入框中; 实现鼠标点击或回车键可…

    JavaScript 2023年6月10日
    00
  • Java关键字之this用法详解

    Java关键字之this用法详解 1. 简介 this 是 Java 语言中的一个关键字,表示当前对象,一般情况下指代的是当前实例。在 Java 中大量使用 this 引用。 this 可以用来调用一个类的构造函数,也可以用来调用类成员变量或成员方法。 2. this 用法 2.1. 用于调用类的构造函数 在 Java 中, this 可以用于引用一个类的构…

    JavaScript 2023年5月19日
    00
  • JavaScript中Array对象用法实例总结

    JavaScript中Array对象用法实例总结 数组(Array)是JavaScript中常用的数据结构,由多个元素组成,每个元素可以是不同的数据类型。在JavaScript中,Array是一种内置对象,提供了多种方法和属性,使其使用非常灵活。 创建数组 JavaScript中创建一个数组可以使用以下两种方式: 使用字面量创建数组 let arr = [1…

    JavaScript 2023年5月27日
    00
  • JS清除字符串中重复值的实现方法

    当我们处理字符串相关的操作时,经常需要去除其中重复的值。以下是JS清除字符串中重复值的实现方法攻略: 第一步:将字符串转换为数组 JS中有一个String对象的split()方法,可以将字符串转换为数组,例如: const str = ‘hello’; const arr = str.split(”); // [‘h’, ‘e’, ‘l’, ‘l’, ‘o…

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