JavaScript表单验证完美代码

下面是详细讲解 JavaScript 表单验证完美代码的攻略。

什么是 JavaScript 表单验证?

JavaScript 表单验证是指利用 JavaScript 编写代码,对用户在表单中输入的数据进行校验。表单验证的目的在于防止用户误输入或恶意输入,确保表单提交的数据格式正确,并提升数据的安全性。

JavaScript 表单验证代码的编写步骤

在进行 JavaScript 表单验证的代码编写时,一般需要按照以下步骤进行:

  1. 获取表单元素:使用 JavaScript 中的 DOM 操作方法根据表单元素的名称或 ID 获取表单元素对象。
  2. 绑定事件监听器:使用 addEventListener() 或 on 进行事件的绑定,当用户提交表单时触发事件。
  3. 编写验证函数:编写验证函数,对表单中的数据进行校验。在验证前,需要对表单数据进行初步的格式化转换。
  4. 显示提示信息:验证函数返回 false 时,在页面中显示相应的提示信息。如果校验通过,则返回 true。
  5. 提交表单或清空表单:如果校验通过,使用 JavaScript 中的 submit() 方法提交表单,否则清空表单并保留错误提示信息。

JavaScript 表单验证完美代码示例

以下是 JavaScript 表单验证完美代码的示例:

示例 1

const form = document.querySelector('#form');
form.addEventListener('submit', function(event) {
  event.preventDefault();
  if (validateForm()) {
    form.submit();
  }
});

function validateForm() {
  const email = document.querySelector('#email');
  const password = document.querySelector('#password');
  const confirmPassword = document.querySelector('#confirm-password');

  if (email.value.trim() === '') {
    email.nextElementSibling.textContent = '邮箱不能为空';
    return false;
  } else if (!isValidEmail(email.value)) {
    email.nextElementSibling.textContent = '请输入正确的邮箱格式';
    return false;
  }

  if (password.value.trim() === '') {
    password.nextElementSibling.textContent = '密码不能为空';
    return false;
  }

  if (confirmPassword.value.trim() === '') {
    confirmPassword.nextElementSibling.textContent = '确认密码不能为空';
    return false;
  } else if (confirmPassword.value !== password.value) {
    confirmPassword.nextElementSibling.textContent = '两次输入的密码不一致';
    return false;
  }

  return true;
}

function isValidEmail(email) {
  const emailRegex = /^\w+@[a-zA-z0-9]+\.[a-zA-Z]{2,4}$/;
  return emailRegex.test(email);
}

以上示例中,我们使用 DOM 操作方法获取表单元素对象,并使用 addEventListener() 方法绑定表单的 submit 事件。在 validateForm() 函数中,我们通过判断表单中各项输入的值是否符合特定条件进行校验。如果校验不通过,我们则使用 nextElementSibling 属性选中下一个兄弟元素节点,并在其文本内容中显示对应的错误提示消息。最后,如果表单数据校验成功,则可以使用 submit() 方法提交表单。

示例 2

const form = document.querySelector('#form');
form.addEventListener('submit', function(event) {
  event.preventDefault();
  if (validateForm()) {
    form.submit();
  }
});

function validateForm() {
  const username = document.querySelector('#username');
  const age = document.querySelector('#age');
  const email = document.querySelector('#email');
  const password = document.querySelector('#password');
  const confirmPassword = document.querySelector('#confirm-password');

  const errorMessage = document.querySelector('#error-message');

  let isValid = true;

  if (username.value.trim() === '') {
    errorMessage.textContent = '用户名不能为空';
    isValid = false;
  }

  if (isNaN(age.value) || parseInt(age.value) < 10 || parseInt(age.value) > 60) {
    errorMessage.textContent = '年龄必须在10~60岁之间';
    isValid = false;
  }

  if (email.value.trim() === '') {
    errorMessage.textContent = '邮箱不能为空';
    isValid = false;
  } else if (!isValidEmail(email.value)) {
    errorMessage.textContent = '请输入正确的邮箱格式';
    isValid = false;
  }

  if (password.value.trim() === '') {
    errorMessage.textContent = '密码不能为空';
    isValid = false;
  }

  if (confirmPassword.value.trim() === '') {
    errorMessage.textContent = '确认密码不能为空';
    isValid = false;
  } else if (confirmPassword.value !== password.value) {
    errorMessage.textContent = '两次输入的密码不一致';
    isValid = false;
  }

  return isValid;
}

function isValidEmail(email) {
  const emailRegex = /^\w+@[a-zA-z0-9]+\.[a-zA-Z]{2,4}$/;
  return emailRegex.test(email);
}

在以上示例中,我们在表单验证的基础上,增加了一个用于在页面中显示错误提示消息的元素,并添加了一个 name 为“age”的年龄输入框。在 validateForm() 函数中,我们对年龄输入框进行了验证,确保其在 10~60 岁之间。最后,我们只有在所有的表单项都通过校验才返回 true,否则显示相应的错误提示消息。

总结

JavaScript 表单验证是 Web 应用程序开发中非常重要的一环。如果没有正确的表单验证代码,在用户输入提交数据后,数据的安全性和准确性无法得到保障。编写 JavaScript 表单验证代码的过程中,我们需要遵循特定的验证流程,实现相应的功能模块。本文提供了两个 JavaScript 表单验证完美代码的示例,供读者参考。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript表单验证完美代码 - Python技术站

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

相关文章

  • 详解JS 比较两个Json对象的值是否相等的实例

    下面是“详解JS 比较两个Json对象的值是否相等的实例”的完整攻略: 实现方法概述 在JavaScript中,我们可以通过遍历两个json对象的每一个属性,比较它们的值是否相等来判断它们是否相等。如果两个json对象的每一个属性都相等,那么它们就相等。下面,我们详细介绍如何实现这个功能。 步骤1:遍历两个json对象的所有属性。 步骤2:判断它们的值是否相…

    JavaScript 2023年5月27日
    00
  • JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍

    下面就来详细讲解“JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍”的完整攻略。 什么是Cookie? Cookie是Web服务器发送到用户浏览器并保存在本地的一小块数据,cookie通常用于存储用户的登录信息、购物车信息等。浏览器再次访问相同的服务器时,会在HTTP请求头中自动携带该服务器之前设置的cookie,从而实现…

    JavaScript 2023年6月11日
    00
  • 记录-实现深拷贝的四种方式

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 概念介绍 深拷贝:在堆内存中重新开辟一个存储空间,完全克隆一个一模一样的对象 浅拷贝:不在堆内存中重新开辟空间,只复制栈内存中的引用地址。本质上两个对象(数组)依然指向同一块存储空间 第一种:递归方式(推荐,项目中最安全最常用) 使用递归的方式进行对象(数组)的深拷贝 奉上已封装的深拷贝函数? /…

    JavaScript 2023年4月22日
    00
  • js每隔两秒输出数组中的一项(实例)

    下面是讲解“js每隔两秒输出数组中的一项”的完整攻略,具体步骤如下: 1. 准备工作 在开始实现之前,我们需要明确几个问题: 哪个数组需要输出? 如何输出数组中的一项? 如何达到每隔两秒输出一项的效果? 针对以上问题,我们可以做如下解答: 这里假设我们要输出的数组是一个长度为n的一维数组 输出数组中的一项可以使用数组索引,即array[index]的形式来实…

    JavaScript 2023年5月27日
    00
  • 如何使Chrome控制台支持多行js模式——意外发现

    下面是讲解“如何使Chrome控制台支持多行js模式——意外发现”的完整攻略: 1. 问题描述 当我们在Chrome控制台输入多行的JavaScript代码时,按下回车键后会将当前行代码执行。如果我们输入多行代码,需要将所有输入的代码都复制到单行去将它们一起执行。这不仅耗时,操作起来也不太方便。那么有没有办法支持多行JavaScript模式呢? 2. 解决方…

    JavaScript 2023年6月11日
    00
  • 基于HTML5+Webkit实现树叶飘落动画

    基于HTML5+Webkit实现树叶飘落动画可以分为以下步骤: 步骤1:准备工作 首先要准备一张树叶图片,推荐使用png格式的图片,因为png格式支持透明度。通过CSS样式,设置树叶的宽度、高度、位置以及初始透明度等。 步骤2:使用CSS3动画 通过CSS3动画,设置树叶从上往下坠落的动画效果。在这里我们使用 translateY() 函数来控制树叶的垂直位…

    JavaScript 2023年6月10日
    00
  • json数据的列循环示例

    下面是关于json数据的列循环示例的完整攻略,包含两条示例说明。 JSON数据的列循环示例 什么是JSON? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它是基于一个子集的JavaScript编程语言,易于读取和编写。 JSON格式是失效的,意味着基于所有现代编程语言的解析器都可以读取和解析JSON数据格式。…

    JavaScript 2023年5月27日
    00
  • javascript实现数组最大值和最小值的6种方法

    JavaScript实现数组最大值和最小值的6种方法 在JavaScript中,我们经常需要在数组中查找最大值和最小值。本文将介绍6种用JavaScript实现数组最大值和最小值的方法。 1. Math.max()和Math.min() 我们可以使用Math对象的max()和min()方法查找数组中的最大值和最小值。 let arr = [1, 2, 3, …

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