HTML5+setCutomValidity()函数验证表单实例分享

yizhihongxing

HTML5+setCustomValidity()函数是HTML5表单验证的一种手段,可以用于实现自定义的表单验证。它可以在用户提交表单之前,动态地对表单中的输入进行检验,通过返回值控制表单是否能够提交。以下是使用HTML5+setCustomValidity()函数进行表单验证的完整攻略。

1. 创建一个基本表单

首先,在HTML中创建一个表单,并添加一些元素,示例如下:

<form>
  <label for="username">Username:</label>
  <input type="text" id="username" name="username" required>
  <br>
  <label for="password">Password:</label>
  <input type="password" id="password" name="password" required>
  <br>
  <input type="submit">
</form>

这是一个简单的登录表单,其中包含了两个必填项:用户名和密码。当用户尝试提交表单时,如果这两个输入框中有任何一个为空,浏览器就会弹出一个默认的提示框,提醒用户填写必填信息。

2. 使用setCustomValidity()函数添加自定义提示

我们可以使用setCustomValidity()函数来添加自定义的提示信息。该函数需要传入一个字符串作为参数,用于指定自定义的提示信息。例如:

document.getElementById("username").setCustomValidity("用户名不能为空!");

这段代码将在用户名输入框中添加一个自定义的提示信息,即“用户名不能为空!”。如果用户未填写用户名,提交表单时这个提示信息就会显示出来。

3. 使用JavaScript进行表单验证

现在,我们可以通过JavaScript代码在用户提交表单时进行验证了。我们可以在表单元素的submit事件中添加一个事件监听器,监听表单提交事件,并在该事件中进行表单验证。例如:

document.querySelector('form').addEventListener('submit', function(event) {
  var usernameInput = document.getElementById('username');
  var passwordInput = document.getElementById('password');

  if (usernameInput.value.trim() === '') {
    usernameInput.setCustomValidity('用户名不能为空!');
    event.preventDefault();
  } else {
    usernameInput.setCustomValidity('');
  }

  if (passwordInput.value.trim() === '') {
    passwordInput.setCustomValidity('密码不能为空!');
    event.preventDefault();
  } else {
    passwordInput.setCustomValidity('');
  }
});

这段代码将在表单提交时对用户名和密码进行检验。如果任何一个输入框为空,将会设置一个自定义的提示信息并阻止表单提交。

在这个代码中,我们首先获取了用户名和密码输入框的引用。然后,我们对其进行了非空检验,如果任何一个输入框为空,我们就会使用setCustomValidity()函数添加一个自定义的提示信息,并调用event.preventDefault()方法阻止表单的提交。如果输入框不为空,我们就清除自定义的提示信息,允许表单提交。

4. 示例说明

以下是在表单中添加自定义提示信息的示例:

<form>
  <label for="email">E-mail:</label>
  <input type="email" id="email" name="email" required>
  <br>
  <input type="submit" value="Submit">
</form>

<script>
  document.getElementById('email').setCustomValidity('请填写有效的Email地址!');
</script>

在这个示例中,我们对Email输入框添加了一个自定义提示信息,提示用户填写有效的Email地址。

下面是在表单提交时进行自定义验证的示例:

<form>
  <label for="age">Age:</label>
  <input type="number" id="age" name="age" required>
  <br>
  <input type="submit" value="Submit">
</form>

<script>
  document.querySelector('form').addEventListener('submit', function(event) {
    var ageInput = document.getElementById('age');
    if (ageInput.value <= 0 || ageInput.value > 150) {
      ageInput.setCustomValidity('请填写有效的年龄!');
      event.preventDefault();
    } else {
      ageInput.setCustomValidity('');
    }
  });
</script>

在这个示例中,我们对年龄输入框进行了自定义验证,检验其是否在0~150之间。如果输入框中的值不在范围内,我们就会设置一个自定义的提示信息,并阻止表单的提交。

通过这两个示例,我们可以清楚地了解到HTML5+setCustomValidity()函数的应用方式,以及如何使用该函数进行表单验证。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:HTML5+setCutomValidity()函数验证表单实例分享 - Python技术站

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

相关文章

  • JS实现同一DOM元素上onClick事件与onDblClick事件并存的解决方法

    当我们需要给同一DOM元素绑定onClick事件和onDblClick事件时,我们会发现这两个事件会产生冲突,无法同时生效。那么该如何解决呢?下面是完整攻略: 1. 解决方法 我们可以通过以下两种方式实现同一DOM元素上onClick事件与onDblClick事件并存: 1.1. 使用setTimeout 我们可以通过使用setTimeout函数来延迟执行o…

    JavaScript 2023年6月10日
    00
  • 基于JS代码实现实时显示系统时间

    创建一个HTML文件并添加一个div标签来展示时间信息。 <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>实时显示系统时间</title> </head> <body> …

    JavaScript 2023年5月27日
    00
  • jsonp跨域获取数据的基础教程

    关于”JSONP跨域获取数据的基础教程”,以下是一份完整攻略。 什么是JSONP跨域获取数据? 当浏览器通过 AJAX 访问另一个域下的资源时,就会遇到跨域问题。JSONP 跨域获取数据是一种跨域解决方案,它利用了 html 页面可以跨域引用 js 脚本文件的特性,从而绕过了跨域限制。 JSONP 跨域获取数据的基本思路 JSONP 跨域获取数据的基本思路是…

    JavaScript 2023年5月27日
    00
  • JavaScript进阶教程(第一课)第2/3页

    接下来我将详细讲解“JavaScript进阶教程(第一课)第2/3页”的完整攻略。 概述 本教程旨在帮助读者提升JavaScript编程技能,涵盖了Javascript的基础知识和进阶知识。本教程包含多个章节,前面几个章节将介绍Javascript的基础内容,而后面的章节将会深入介绍Javascript的优化和进阶知识,包括如何使用高级Javascript技…

    JavaScript 2023年5月17日
    00
  • JS读取XML文件示例代码

    下面是JS读取XML文件的完整攻略。 一、读取XML文件的基本原理 在JS读取XML文件时,可以通过以下步骤实现: 创建一个 XMLHttpRequest对象; 打开文件并发送请求; 监听请求状态; 接收响应; 解析XML数据。 在以上步骤中,创建XMLHttpRequest对象和打开文件并发送请求的方法是固定的,而解析XML数据则需要使用不同的方法,这取决…

    JavaScript 2023年5月27日
    00
  • 2022发布ECMAScript新特性盘点

    2022发布ECMAScript新特性盘点 ECMAScript是JavaScript的标准化规范,随着JavaScript在各种领域的广泛应用,ECMAScript的发展也越来越快速。2022年发布的ECMAScript新特性是JavaScript开发者需要重点关注的内容之一。本文将详细讲解这些新特性并提供示例说明。 BigInt BigInt是一种新的基…

    JavaScript 2023年5月27日
    00
  • JS的Form表单转JSON格式的操作代码

    JS的Form表单转JSON格式的操作代码可以通过以下步骤实现: 获取表单元素 使用document.querySelector()方法获取到表单元素对象。例如: const form = document.querySelector(‘#myForm’); 遍历表单元素 使用forEach()方法遍历表单元素的所有表单控件,并将其转换为JSON格式。例如:…

    JavaScript 2023年5月27日
    00
  • javascript 正则替换 replace(regExp, function)用法

    当我们使用JavaScript时,我们经常会用到字符串操作,而正则表达式则是字符串操作中不可或缺的一部分。其中,replace()函数是JavaScript中操作字符串非常重要的函数,它可以完成字符串中的替换操作。replace()函数的第一个参数可以是一个正则表达式,也可是普通的字符串,第二个参数则可以是另一个字符串或函数。在本篇文章中,我们将重点讲解使用…

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