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日

相关文章

  • JavaScript正则表达式和级联效果

    JavaScript正则表达式是一种强大的文本处理工具,可以帮助我们快速查找、替换并验证字符串。级联效果是指在表单中使用多个输入框时,前后输入框的内容之间会有一定的联系和限制。下面是JavaScript正则表达式和级联效果的详细攻略。 JavaScript正则表达式 什么是正则表达式 正则表达式即为RegExp对象,通过正则表达式可以匹配字符串并且进行替换。…

    JavaScript 2023年6月10日
    00
  • ie下$.getJSON出现问题的解决方法

    让我来详细讲解“ie下$.getJSON出现问题的解决方法”的完整攻略。 问题描述 当我们在Internet Explorer(IE)浏览器中使用$.getJSON方法来获取数据时,会遇到跨域请求失败的问题,具体表现为:- 控制台报错:Access is denied.- 监控工具中看不到跨域请求。 解决方法 方法一:使用代理 使用代理的原理是先创建一个后端…

    JavaScript 2023年5月27日
    00
  • 5款JavaScript代码压缩工具推荐

    当我们的JavaScript代码变得越来越复杂时,它的大小也会随之增加。这意味着每次用户打开我们的网站时,都要下载更多的JavaScript代码。为了优化加载速度和性能,许多开发人员选择使用JavaScript压缩工具来减小代码的大小。本文将为您介绍五个优秀的JavaScript代码压缩工具,并解释如何在您的项目中使用它们。 1. UglifyJS Ugli…

    JavaScript 2023年5月27日
    00
  • javascript 在线文本编辑器实现代码

    实现一个 JavaScript 在线文本编辑器的具体思路如下: 创建一个文本输入框,接受用户输入的文本; 创建一个可编辑的文本区域,将用户输入的文本显示在此区域内; 设置文本区域的样式和属性,使之可编辑; 当用户在文本区域中进行编辑操作时,通过 JavaScript 监听用户的输入操作,并实时更新显示内容; 将编辑后的文本内容提交到后台进行保存。 下面是实现…

    JavaScript 2023年6月10日
    00
  • javascript中利用柯里化函数实现bind方法

    利用柯里化函数实现bind方法 在 JavaScript 中,bind() 是一个用于改变函数 this 上下文的方法。它返回一个新函数,新函数的 this 指向 bind() 的第一个参数,并且在调用的时候可以传入多个参数传递给原函数。这个方法在函数式编程中非常有用,因为它允许我们更容易地组合函数。 柯里化函数可以用来实现 bind() 方法,让我们来看看…

    JavaScript 2023年6月10日
    00
  • javascript使用for循环批量注册的事件不能正确获取索引值的解决方法

    当使用 for 循环批量注册事件时,经常会遇到无法正确捕获循环变量 i 的问题。这是因为循环结束后,i 的值会变成循环内最后一个迭代的值。这个问题通常称为 JavaScript 的闭包问题。下面是一个简单的示例说明: <!DOCTYPE html> <html> <head> <title>for循环注册事件示…

    JavaScript 2023年6月10日
    00
  • js String对象中常用方法小结(字符串操作)

    下面我来详细讲解一下“js String对象中常用方法小结(字符串操作)”的完整攻略。 1. String对象 在JavaScript中,字符串属于基本类型,但对于字符串的操作,可以使用JavaScript内置的String对象提供的方法。 2. 常用方法小结 2.1 字符串连接 字符串连接是指将两个或多个字符串合并成一个字符串,String对象提供的连接方…

    JavaScript 2023年5月20日
    00
  • 分离式javascript取当前element值的代码

    下面是关于“分离式javascript取当前element值的代码”的攻略。 什么是分离式javascript 分离式javascript是网页开发中常用的一种技术,它将网页中的代码和行为分离开来,使得代码更易于维护和管理。一般来说,分离式javascript代码会以单独的.js文件的形式存放在服务器上,例如: <script src="js…

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