实用的JS表单验证提示效果

yizhihongxing

要实现“实用的JS表单验证提示效果”,我们需要以下步骤:

1. 编写HTML代码

我们需要为表单元素添加id或class属性,以便我们可以使用JavaScript代码对其进行操作。

<form id="myForm">
  <label for="username">用户名:</label>
  <input type="text" id="username" name="username" required="required"><br>

  <label for="password">密  码:</label>
  <input type="password" id="password" name="password" required="required"><br>

  <button type="submit">提交</button>
</form>

2. 编写CSS代码

我们需要为提示框和表单元素添加样式。

/* 表单输入框样式 */
input{
  width: 200px;
  height: 30px;
  padding: 5px 10px;
  margin-bottom: 10px;
  border-radius: 5px;
  border: 1px solid #ccc;
}

/* 必填表单元素样式 */
input:required{
  border-color: #f00;
}

/* 提示框样式 */
.error{
  display: none;
  color: #f00;
  font-size: 14px;
}

3. 编写JavaScript代码

我们使用JavaScript代码来验证用户输入,并对用户错误提示。

// 获取表单元素
var myForm = document.getElementById("myForm");
var username = document.getElementById("username");
var password = document.getElementById("password");

// 给表单元素添加验证事件
myForm.addEventListener("submit",function(event){
  // 阻止表单默认提交行为,这样我们可以处理表单的验证
  event.preventDefault();

  // 验证用户名不能为空
  if(username.value == ""){
    showError(username,"用户名不能为空");
  }else{
    showSuccess(username);
  }

  // 验证密码不能为空
  if(password.value == ""){
    showError(password,"密码不能为空");
  }else{
    showSuccess(password);
  }

  // 如果所有表单元素都通过验证,则提交表单
  if(checkAll()){
    myForm.submit();
  }
});

// 验证表单元素是否通过验证
function checkAll(){
  // 获取所有表单元素
  var inputs = myForm.querySelectorAll("input");

  // 验证每一个表单元素是否通过验证
  for(var i = 0; i < inputs.length; i++){
    // 如果表单元素没有通过验证,则返回false
    if(inputs[i].parentNode.classList.contains("error")){
      return false;
    }
  }

  // 如果所有表单元素都通过验证,则返回true
  return true;
}

// 显示错误提示
function showError(input,message){
  // 获取表单元素的父级元素
  var parent = input.parentNode;

  // 添加错误提示样式
  parent.classList.add("error");

  // 显示错误提示框
  var error = parent.querySelector(".error");

  error.innerHTML = message;
  error.style.display = "block";
}

// 显示成功提示
function showSuccess(input){
  // 获取表单元素的父级元素
  var parent = input.parentNode;

  // 移除错误提示样式
  parent.classList.remove("error");

  // 隐藏错误提示框
  var error = parent.querySelector(".error");

  error.innerHTML = "";
  error.style.display = "none";
}

示例说明

示例1

假设我们要验证“年龄”表单元素是否大于18,如果小于或等于18,则提示“年龄必须大于18”。

<form id="myForm2">
  <label for="age">年龄:</label>
  <input type="number" id="age" name="age" required="required"><br>

  <button type="submit">提交</button>
</form>
// 获取表单元素
var myForm2 = document.getElementById("myForm2");
var age = document.getElementById("age");

// 给表单元素添加验证事件
myForm2.addEventListener("submit",function(event){
  // 阻止表单默认提交行为,这样我们可以处理表单的验证
  event.preventDefault();

  // 验证年龄是否大于18
  if(age.value <= 18){
    showError(age,"年龄必须大于18");
  }else{
    showSuccess(age);
  }

  // 如果所有表单元素都通过验证,则提交表单
  if(checkAll()){
    myForm2.submit();
  }
});

示例2

我们可以为必填表单元素添加data-rule属性,来设置自定义验证规则。

<form id="myForm3">
  <label for="email">邮箱:</label>
  <input type="email" id="email" name="email" required="required" data-rule="^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$" ><br>

  <button type="submit">提交</button>
</form>
// 获取表单元素
var myForm3 = document.getElementById("myForm3");
var email = document.getElementById("email");

// 给表单元素添加验证事件
myForm3.addEventListener("submit",function(event){
  // 阻止表单默认提交行为,这样我们可以处理表单的验证
  event.preventDefault();

  // 获取自定义验证规则
  var rule = email.getAttribute("data-rule");

  // 如果没有自定义验证规则,则跳过验证
  if(!rule) return;

  // 构造正则表达式
  var regex = new RegExp(rule);

  // 验证邮箱地址是否符合规则
  if(!regex.test(email.value)){
    showError(email,"邮箱格式不正确");
  }else{
    showSuccess(email);
  }

  // 如果所有表单元素都通过验证,则提交表单
  if(checkAll()){
    myForm3.submit();
  }
});

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:实用的JS表单验证提示效果 - Python技术站

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

相关文章

  • javascript URL编码和解码使用说明

    Javascript URL编码和解码使用说明 在Javascript编程中,url编码和解码是常见的操作。URL编码指将url中的特殊字符进行转义,以便于传输和处理;而URL解码则是将转义后的特殊字符还原回原来的字符。本文将详细介绍Javascript中URL编码和解码的使用方法。 URL编码 Javascript中URL编码通过encodeURIComp…

    JavaScript 2023年5月19日
    00
  • JavaScript函数式编程Thunk原理解析

    JavaScript函数式编程Thunk原理解析 本文将详细讲解什么是 JavaScript 函数式编程中的 Thunk,它的原理是什么,以及如何使用 Thunk 来实现异步编程。 什么是 Thunk Thunk 是一种 JavaScript 函数编程的技术。它是一个惰性求值的函数,即只有在需要的时候才会执行。Thunk 函数接受参数,并返回一个不执行任何操…

    JavaScript 2023年5月27日
    00
  • 几句话带你理解JS中的this、闭包、原型链

    下面我将为你详细讲解“几句话带你理解JS中的this、闭包、原型链”的完整攻略。 this 在Javascript中,this关键字代表函数执行时的上下文环境,它的值取决于函数被调用时的方式。如果函数是作为对象的方法被调用,this指向该对象,如果函数作为普通函数被调用,this指向全局对象window。 在ES6中,箭头函数使用词法作用域,且绑定了外层函数…

    JavaScript 2023年6月10日
    00
  • js实现一个页面多个倒计时的3种方法

    JS实现一个页面多个倒计时的3种方法 在一个网站中,可能会涉及到多个倒计时的展示,比如商品秒杀、优惠活动等。这时候,就需要实现一个页面中多个倒计时的效果。下面我们来介绍三种方式来实现这个功能。 方法一:使用setInterval()方法 setInterval()方法可以在指定的时间间隔(repeatTime)内,反复执行某个函数(fn)。我们可以利用set…

    JavaScript 2023年6月11日
    00
  • 深入理解Jquery表单验证(使用formValidator)

    深入理解JQuery表单验证(使用formValidator) 简介 JQuery表单验证是前端开发中经常使用到的技术之一,它可以对用户输入的表单数据进行自定义的验证。本篇文章将介绍如何使用 JQuery 插件 formValidator 进行表单验证。 安装 首先需要在项目中引入 JQuery 和 formValidator。 <head> &…

    JavaScript 2023年6月10日
    00
  • 将JSON字符串转换成Map对象的方法

    要将JSON字符串转换成Map对象,可以使用Java中的JSON库,例如FastJson、Gson等。以下是将JSON字符串转换成Map对象的详细攻略。 准备工作 首先需要引入JSON库的依赖,以FastJson为例,Maven的依赖配置如下: <dependency> <groupId>com.alibaba</groupId…

    JavaScript 2023年5月27日
    00
  • js删除Array数组中指定元素的两种方法

    当我们使用 JavaScript 的数组时,有时需要从数组中删除一个或多个特定的元素。本文将详细讲解 JavaScript 中删除数组元素的两种常见方法。 方法一:使用splice()方法 splice() 方法可以用来在任何指定的位置添加或删除数组元素。删除元素时,splice() 方法需要两个参数:被删除元素的位置和要删除的元素个数。 下面是使用spli…

    JavaScript 2023年5月27日
    00
  • 基于javascript实现日历功能原理及代码实例

    下面我会详细讲解“基于javascript实现日历功能原理及代码实例”的完整攻略,包括日历功能原理、代码实现和实例说明。 日历功能原理 1. 获取日期信息 日历功能的基本原理是通过JavaScript获取当前日期或手动设置日期,并根据日期信息计算出该月的日期信息。可以使用Date()对象来获取日期信息,如下: let date = new Date(); /…

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