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日

相关文章

  • 使用Javascript开发sliding-nav带滑动条效果的导航插件

    一、前言 本文将介绍如何使用Javascript开发sliding-nav带滑动条效果的导航插件。这个插件是可以在不同的网页上使用的,它可以使你的导航更美观、更实用。 二、制作滑动导航 创建HTML结构 首先,我们需要创建一个HTML结构,用于存储导航。该结构应该包含一个父元素(一般是nav标签),该元素内部包含链接、图标或其它的内容。 例如: <na…

    JavaScript 2023年6月10日
    00
  • 总结JavaScript三种数据存储方式之间的区别

    当我们开发基于 JavaScript 的应用程序时,我们需要考虑如何在应用程序中存储数据。JavaScript 中有很多种数据存储方式,本文将介绍三种最常用的数据存储方式,包括: Cookie Web 存储(LocalStorage 和 SessionStorage) IndexedDB Cookie Cookie 是最早的 Web 储存技术之一,可以通过 …

    JavaScript 2023年6月11日
    00
  • Js数组的操作push,pop,shift,unshift等方法详细介绍

    Js数组的操作push,pop,shift,unshift等方法详细介绍 在JavaScript中,数组是一个非常重要的数据结构,它可以存储很多不同类型的数据。对于数组的操作,包括增加、删除、遍历和排序等,都是非常常见的。本文将详细介绍数组中的push、pop、shift、unshift等方法的使用方法和实例说明。 push方法 push方法可以在数组的末尾…

    JavaScript 2023年5月27日
    00
  • 原生js实现页面滚动动画

    为了实现“原生js实现页面滚动动画”,我们需要以下步骤: 1. 监听页面滚动事件 在监听“页面滚动事件”之前,需要先获得“滚动高度”和“窗口可视高度”两个常量,以便后续的计算。这里的计算方法如下: const scrollTop = window.pageYOffset || document.documentElement.scrollTop; // 获取…

    JavaScript 2023年6月11日
    00
  • JS获取url链接字符串 location.href

    获取当前网页的URL链接字符串是一个常见的需求,而在JavaScript中,我们可以通过location.href属性来实现。 location.href是一个字符串,包含当前页面的完整URL。你可以直接打印location.href来查看当前页面的URL。 示例一:获取当前页面的URL并显示在页面上 <!DOCTYPE html> <ht…

    JavaScript 2023年6月11日
    00
  • 深入浅出JS的Object.defineProperty()

    深入浅出JS的Object.defineProperty() Object.defineProperty() 是JavaScript中一个非常重要的定义对象属性的 API。使用 Object.defineProperty() 可以定义对象属性的操作,比如,属性的可枚举性、可配置性、可读写性值等。在深入了解这个API之前,需要知晓一些基础的概念和属性设置,下面…

    JavaScript 2023年5月28日
    00
  • javascript在线编码查询工具

    基本介绍 “javascript在线编码查询工具”是一款web应用程序,可以用来编码和解码经常在javascript编程中使用的不同数据类型,比如文字、URL、base64等等。这个工具可以通过浏览器使用,不需要安装或者配置过程。下面我们来详细介绍如何使用这个工具。 使用步骤 打开 javascript在线编码查询工具网站:https://www.sojso…

    JavaScript 2023年5月20日
    00
  • Javascript Date getUTCMilliseconds() 方法

    JavaScript 中的 getUTCMilliseconds() 方法用于获取 UTC 时间的毫秒部分。在本教程中,我们将详细介绍 getUTCMilliseconds() 方法的使用方法。 getUTCMilliseconds() 方法的基本语法如下: date.getUTCMilliseconds() 其中,date 是获取毫秒部分的 UTC 日期对…

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