JS实现表单验证案例

yizhihongxing

JS实现表单验证是前端开发中经常用到的技术,可有效防止用户提交无效或不完整的数据。下面是一些实现表单验证的技巧。

第一步:获取表单元素

在JS中,使用DOM API获取表单元素非常简单。首先得到表单元素本身,然后可以通过表单的表单元素来访问表单元素。例如:

const form = document.querySelector('form');
const emailInput = form.querySelector('input[type="email"]');

从这里可以看到,第一行代码获取了一个具有“form”标记的元素(表单),而第二行代码获取了一个“email”输入字段。

第二步:验证输入

输入数据验证的方式有很多,常见的包括正则表达式、验证函数以及HTML5表单验证。以下是一个使用HTML5验证属性的例子:

<form>
  <label for="email">Email:</label>
  <input type="email" id="email" name="email" required>
  <button type="submit">Submit</button>
</form>

这里我们使用了“required”属性,它指示该字段是必须的。如果用户未输入任何内容,则会显示一个“Please fill out this field”消息。

第三步:防止表单提交

最后,必须添加防止表单提交的代码。通常,这会在JavaScript中完成,在“提交”按钮上注册事件监听器,以便在用户单击提交按钮时验证表单的输入并防止提交。例如:

const form = document.querySelector('form');
const emailInput = form.querySelector('input[type="email"]');

form.addEventListener('submit', function(event) {
  if (!emailInput.checkValidity()) {
    event.preventDefault();
    // 提示用户输入正确的Email
  }
});

当表单被提交时,检查“email”字段的有效性。如果该输入无效,则防止表单提交。

示例:验证电话号码

下面是一个例子,用JavaScript验证一个电话号码的格式是否正确。假设我们有一个输入字段“phone”,它的id是“phone”。

<form>
  <label for="phone">Phone:</label>
  <input type="tel" id="phone" name="phone">
  <button type="submit">Submit</button>
</form>
const form = document.querySelector('form');
const phoneInput = form.querySelector('#phone');

form.addEventListener('submit', function(event) {
  const isValidPhoneNumber = /^(\+)?\d{7,15}$/.test(phoneInput.value);
  if (!isValidPhoneNumber) {
    event.preventDefault();
    alert('Please enter a valid phone number.');
  }
});

在这个JavaScript代码中,我们首先得到了表单元素和输入元素。然后,通过用正则表达式验证输入来检查电话号码是否正确。如果电话号码无效,则阻止表单提交并显示错误消息。

示例:验证密码

下一个例子是一个密码验证。我们有一个输入字段“password”,以及一个确认密码“confirm-password”字段,两个输入都必须填写且匹配才能成功提交表单。

首先,让我们看看HTML代码:

<form>
  <label for="password">Password:</label>
  <input type="password" id="password" name="password">
  <label for="confirm-password">Confirm Password:</label>
  <input type="password" id="confirm-password" name="confirm-password">
  <button type="submit">Submit</button>
</form>

接下来,JavaScript代码验证这些输入:

const form = document.querySelector('form');
const passwordInput = form.querySelector('#password');
const confirmPasswordInput = form.querySelector('#confirm-password');

form.addEventListener('submit', function(event) {
  const isValidPassword = /^.{6,}$/.test(passwordInput.value);
  if (!isValidPassword) {
    event.preventDefault();
    alert('Password must be at least 6 characters long.');
    return;
  }

  if (passwordInput.value !== confirmPasswordInput.value) {
    event.preventDefault();
    alert('Passwords do not match.');
  }
});

在这个代码中,我们使用第一个正则表达式验证密码必须至少包含6个字符。如果该检查失败,则阻止表单提交并显示错误消息。否则,代码检查“密码”和“确认密码”是否相同。如果这些输入不同,则阻止表单提交并显示错误消息。

需要注意的是,在提交表单之前,需要检查所有输入是否有效,并在发现任何无效输入时阻止表单提交。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS实现表单验证案例 - Python技术站

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

相关文章

  • SVG动画vivus.js库使用小结(实例代码)

    下面是一份详细的攻略,包含vivus.js库的使用方法及实例代码: 介绍 Vivus.js库是一个轻量级的javascript库,可以创建美观的SVG描边动画效果。它支持很多动态效果,例如从头开始显示、流线显示、延迟显示等等。 安装 首先,在你的html文档中引入vivus.js文件: <script src="vivus.js"&…

    JavaScript 2023年6月11日
    00
  • JavaScript面向对象知识串结(读JavaScript高级程序设计(第三版))

    JavaScript 是一门面向对象的语言,它采用基于原型链的面向对象机制,可以通过创建对象实例来实现面向对象的编程。在学习 JavaScript 面向对象知识串结的过程中,建议按照以下步骤逐一学习。 1. 理解原型及原型链 在 JavaScript 中,每个对象都有一个原型对象,原型对象也是一个对象。在对象查找成员(属性和方法)时,如果自身无法找到该成员,…

    JavaScript 2023年5月27日
    00
  • JS实现刷新网页后之前浏览位置保持不变示例详解

    JS实现刷新网页后之前浏览位置保持不变的功能,主要需要利用HTML5中的History API和Session Storage来实现。 具体过程步骤如下: 1.获取网页当前滚动位置,可以使用JavaScript代码document.documentElement.scrollTop或者document.body.scrollTop来获取当前滚动位置。 let…

    JavaScript 2023年6月11日
    00
  • 实例解析package.json和最常见的scripts字段

    关于“实例解析package.json和最常见的scripts字段”的攻略,我会提供如下内容: 一、什么是package.json? package.json是Node.js项目中杂项文件中最重要的一份,其定义了项目的基本信息和开发所需的各种依赖以及构建、打包、测试等各个方面的命令和配置。通过这个文件,我们可以更好地管理项目依赖、规范版本、运行脚本等,也可以…

    JavaScript 2023年5月27日
    00
  • Javascript优化技巧(文件瘦身篇)

    Javascript优化技巧(文件瘦身篇) 为什么需要文件瘦身? 在前端开发中,Javascript文件瘦身是一项必修课。因为随着项目的不断庞大,Javascript代码也会不断增加,而且有些代码可能已经过时、冗余、或者被其中其他代码所替代,这些代码对于整个项目的性能影响还是非常大的。 通过文件瘦身技巧,我们可以有效减少代码的冗余,提高代码的复用性,优化代码…

    JavaScript 2023年5月27日
    00
  • JS获得一个对象的所有属性和方法实例

    获取一个对象的所有属性和方法实例有多种方式,下面将介绍其中两种常用的方法。 1. 使用 Object.getOwnPropertyNames() 和 Object.getOwnPropertySymbols() Object.getOwnPropertyNames() 可以获取对象自有的所有属性名,包括不可枚举的属性(例如,通过 Object.defineP…

    JavaScript 2023年5月27日
    00
  • 使用js正则表达式验证文件扩展名方法实例

    使用 JavaScript 正则表达式验证文件扩展名是一个常见的前端开发需求,下面是一份完整的攻略,供参考。 什么是文件扩展名? 在计算机领域,文件扩展名是指在文件名的末尾添加的一个或多个字符,用于表示该文件的类型。例如,“.txt” 表示文本文件,“.png” 表示图像文件,“.html” 表示网页文件等等。 验证文件扩展名的方法 在 JavaScript…

    JavaScript 2023年5月27日
    00
  • JavaScript实现网页跨年倒计时

    下面是JavaScript实现网页跨年倒计时的完整攻略,包括实现原理、代码实现和示例说明。 实现原理 获取当前时间和跨年的时间,计算相差的时间。 每个一秒钟更新一次剩余时间并打印在网页上。 当倒计时结束时,停止更新并显示倒计时已结束的文本。 代码实现 <!DOCTYPE html> <html> <head> <me…

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