第14节课:HTML5表单增强——提升用户体验与数据准确性

devtools/2024/9/23 6:31:52/

目录

    • HTML5表单增强概述
    • 新输入类型
      • `email`
      • `url`
      • `number`
      • `range`
      • `date`
    • 表单验证
      • `required`
      • `pattern`
    • 实践:创建一个增强型HTML5表单
    • 结语

随着HTML5的推出,表单功能得到了显著增强,提供了新的输入类型和验证特性,这不仅提升了用户的填写体验,也帮助开发者确保收集到的数据更加准确和可靠。本节课将详细介绍HTML5中新增的表单输入类型和表单验证方法。

HTML5表单增强概述

HTML5表单增强主要包括以下几个方面:

  • 新的输入类型:提供更丰富的用户输入选项,如电子邮箱、URL、数字、范围选择和日期选择。
  • 表单验证:通过HTML属性实现html" title=前端>前端验证,减少无效或不完整的数据提交。

新输入类型

email

email类型用于输入电子邮件地址,它会自动验证输入值是否符合电子邮件的格式。

html"><input type="email" name="userEmail" required>

url

url类型用于输入网址,浏览器会验证输入值是否为有效的URL。

html"><input type="url" name="websiteURL" required>

number

number类型用于输入数字,可以限制数字的范围和步长。

html"><input type="number" name="age" min="18" max="100">

range

range类型用于创建一个数值范围选择器,适用于需要选择一个数值范围的场景。

html"><input type="range" name="volume" min="0" max="100" step="5">

date

date类型用于输入日期,支持多种日期格式。

html"><input type="date" name="birthdate">

表单验证

表单验证是确保用户输入有效数据的关键技术。HTML5提供了几种验证属性:

required

required属性用于标记输入字段为必填项,如果用户未填写,表单将无法提交。

html"><input type="text" name="username" required>

pattern

pattern属性用于定义一个正则表达式,输入值必须符合该正则表达式才能通过验证。

html"><input type="text" name="username" pattern="[a-zA-Z0-9]{5,10}" title="用户名必须是5到10位的字母或数字">

实践:创建一个增强型HTML5表单

下面是一个示例,展示如何使用HTML5的新输入类型和验证特性来创建一个用户注册表单。

html"><!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>学问小小谢-用户注册表单</title>
</head>
<body><form id="registrationForm"><label for="email">电子邮件:</label><input type="email" id="email" name="email" required><label for="username">用户名:</label><input type="text" id="username" name="username" pattern="[a-zA-Z0-9]{5,10}" title="用户名必须是5到10位的字母或数字" required><label for="password">密码:</label><input type="password" id="password" name="password" required minlength="8"><label for="age">年龄:</label><input type="number" id="age" name="age" min="18" max="100"><label for="birthdate">出生日期:</label><input type="date" id="birthdate" name="birthdate"><label for="terms">接受服务条款:</label><input type="checkbox" id="terms" name="terms" required><button type="submit">注册</button></form><script>document.getElementById('registrationForm').addEventListener('submit', function(event) {var form = this;if (!form.checkValidity()) {event.preventDefault();alert('请填写所有必填项并符合格式要求。');}form.classList.add('was-validated');});</script>
</body>
</html>

结语

HTML5的表单增强功能为开发者提供了更多的工具来创建友好和有效的表单。通过使用新的输入类型和验证特性,我们可以确保用户输入的数据不仅准确而且符合预期格式。这不仅提升了用户体验,也减少了服务器端的验证负担。继续深入html" title=学习>学习HTML5的其他特性,你将能够创建出更加强大和用户友好的Web应用。


http://www.ppmy.cn/devtools/92019.html

相关文章

flutter 压缩图片,修改图片尺寸,修改图片格式

最近需要用到flutter压缩图片 网上大部分教程基于 image_compression_flutter , flutter_image_compress 这两个扩展不好用,他们只能压缩图片质量(不能修改图片尺寸),这样压缩效果不好.其实移动端不需要分辨率太高的图片, 在网上找到了一篇文章 https://juejin.cn/post/723…

【Material-UI】Checkbox组件:图标设置详解

文章目录 一、Checkbox 组件与图标自定义概述1. 组件介绍2. 基本用法 二、图标自定义的详细解读1. icon 和 checkedIcon 属性2. 自定义图标的优势3. 使用Material-UI图标库 三、应用场景与实践1. 表单中的个性化选项2. 内容管理与标记3. 游戏与娱乐应用 四、最佳实践与注意事项…

python3基本数据类型说明一

一. 简介 本文简单学习一下 python3的变量。主要学习 python语言中如何创建变量。 二. python3基本数据类型 1. python中 变量 Python 中的变量不需要声明。每个变量在使用前都必须赋值&#xff0c;变量赋值以后该变量才会被创建。在 Python 中&#xff0c;变量就是变量&am…

数据结构——栈的讲解(超详细)

前言&#xff1a; 小编已经在前面讲完了链表和顺序表的内容&#xff0c;下面我们继续乘胜追击&#xff0c;开始另一个数据结构&#xff1a;栈的详解&#xff0c;下面跟上小编的脚步&#xff0c;开启今天的学习之路&#xff01; 目录 1.栈的概念和结构 1.1.栈的概念 1.2.栈的结构…

clone plugin搭建MySQL 8.0 主从复制

Clone plugin搭建MySQL 8.0 主从复制 安装clone plugin创建3308实例3306实例配置3308实例配置Clone Plugin 的限制 前面2篇分别利用逻辑备份mysqldump和屋里备份xtrabackup搭建了MySQL主从复制&#xff0c;分别适用不同的场景&#xff0c;逻辑备份适用数据量小点的&#xff0c;…

C语言:函数

函数是对步骤的封装。 函数分两类&#xff1a;一类是系统函数&#xff0c;一类是自定义的函数。 系统自带的函数如我们现在一直在用的printf。 而今天我们主要说的是自定义函数。 首先&#xff0c;我们要明白自定义函数的目的就是为了把一些麻烦复杂的东西封装起来&#xf…

c++——atomic以及内存顺序详解

c——atomic以及内存顺序详解 简介示例代码 1.原子类型2.原子类型函数3.内存顺序memory_order_relaxed&#xff1a;注意 memory_order_acquire&#xff1a;memory_order_seq_cst&#xff1a;memory_order_release&#xff1a; 简介 原子性操作库(atomic)是C11中新增的标准库&a…

Vue js-cookie的使用存储token操作

在Vue项目中使用js-cookie库存储token可以按照下面的步骤进行操作&#xff1a; 首先&#xff0c;安装js-cookie库&#xff0c;可以使用npm安装&#xff0c;命令为&#xff1a; npm install js-cookie 然后&#xff0c;在需要存储token的组件中引入js-cookie库&#xff1a; imp…