当前位置: 首页 > news >正文

0基础学前端 day8 -- HTML表单

大家好,欢迎来到无限大的频道

今天继续给大家带来0基础学前端

探索HTML中的表单

在当今互联世界,表单已成为用户与网站之间最常见的交互手段之一。它们不仅用于收集数据,还用于实现用户注册、登录、搜索、反馈、以及购买等功能。在这篇博文中,我们将深入探讨HTML中的表单,包括它们是什么,常见的应用场景,以及如何打造优美的表单。

一、什么是表单?

表单(Form)是网页中用于接收用户输入的区域,是Web应用程序与用户之间进行数据交互的关键元素。HTML使用 <form> 标签来定义表单,表单元素可以收集用户的各种输入,如文本框、复选框、选择框等。表单的数据可以通过网络发送到服务器进行处理。

1.表单的基本结构示例

<form action="/submit" method="post"><label for="username">用户名:</label><input type="text" id="username" name="username"><label for="email">电子邮件:</label><input type="email" id="email" name="email"><input type="submit" value="提交">
</form>

在这里插入图片描述


2.表单的重要属性

  • action: 表示表单数据提交到哪个URL。
  • method: 数据提交方式(常用GET和POST)。

二、常见的表单类型及应用

1. 登录与注册表单

每个需要用户登录的系统均需要此类表单,用于收集用户名、密码等信息。

<form action="/login" method="post"><input type="text" name="username" placeholder="用户名"><input type="password" name="password" placeholder="密码"><button type="submit">登录</button>
</form>

在这里插入图片描述


2. 搜索表单

用于接受用户的搜索关键词,并根据搜索内容返回匹配结果。

<form action="/search" method="get"><input type="text" name="q" placeholder="搜索..."><button type="submit">搜索</button>
</form>

在这里插入图片描述


3. 反馈与联系表单

用于收集用户的意见、问题,及提供联系反馈的渠道。

<form action="/feedback" method="post"><textarea name="message" placeholder="您的意见"></textarea><input type="email" name="email" placeholder="您的电子邮件"><button type="submit">提交反馈</button>
</form>

在这里插入图片描述


4. 购物车与结账表单

用于收集购物所需的用户信息,如地址、支付信息。
当然可以!下面是一个简单的购物车与结账表单示例,用于收集用户的基本信息,如姓名、地址、支付信息等。该示例将展示用户填写所需的所有字段,并确保其包含一些基本的输入验证。


三、优美表单设计的要点

1. 清晰简洁:

确保每个输入字段清楚明了。使用标签与占位符让用户知道每个字段的用途。

<label for="name">姓名:</label>
<input type="text" id="name" name="name" placeholder="请输入姓名">

在这里插入图片描述


2. 一致的视觉样式:

使用CSS进行样式定义,保持页面元素的一致性。

input[type="text"], input[type="email"], textarea {width: 100%;padding: 12px;border: 1px solid #ccc;border-radius: 4px;margin-bottom: 12px;
}

在这里插入图片描述


3. 响应式设计:

确保表单在移动设备上同样美观和易用。

@media only screen and (max-width: 600px) {input[type="text"], input[type="email"], textarea {width: 100%;}
}

在这里插入图片描述


4. 及时的用户反馈:

使用JavaScript或HTML5自身属性

如何实现即时输入验证
  1. 使用HTML5元素属性
    HTML5引入了多个新的输入类型和属性,使得你可以轻松添加验证逻辑。例如,requiredtypeminlengthpattern等属性能够帮助你验证用户输入。

    • required: 指定某个输入字段为必填字段,用户必须填写才能提交表单。
    • type: 可以指定输入类型,例如emailnumber等,浏览器将根据类型自动进行格式检查。
    • pattern: 允许你定义一个正则表达式,指定输入格式要求。

    示例代码:

    <form><label for="email">电子邮件:</label><input type="email" id="email" name="email" required placeholder="请输入有效的电子邮件"><input type="submit" value="提交">
    </form>
    

    在这个例子中,如果用户未填写电子邮件或输入了不符合格式的内容,浏览器会阻止表单提交,并提示用户。

  2. 使用JavaScript进行添加验证
    如果你需要更复杂的验证逻辑,可以使用JavaScript进行实时检查。例如,在用户输入的同时进行验证,并根据输入的有效性展示提示信息。

    示例代码:

    <form id="myForm"><label for="username">用户名:</label><input type="text" id="username" name="username" placeholder="请输入用户名" required><span id="usernameFeedback" style="color:red;"></span><input type="submit" value="提交">
    </form><script>const usernameInput = document.getElementById('username');const feedback = document.getElementById('usernameFeedback');usernameInput.addEventListener('input', function() {if (usernameInput.value.length < 3) {feedback.textContent = '用户名必须至少包含3个字符。';} else {feedback.textContent = '';}});
    </script>
    

    在这个例子中,当用户输入用户名时,脚本会检查输入的字符数。如果少于3个字符,会显示提示信息;如果满足条件,提示信息将被清除。
    图示如下:


在这里插入图片描述


在这里插入图片描述


5. 增强可访问性:

使用label标签关联输入框,提供aria属性以协助辅助技术阅读。

增强可访问性是指通过设计和技术,使网页或应用的内容和功能对尽可能多的用户都能有效访问和使用,包括那些有视力、听力或其他残障的人士。对于表单,使用<label>标签和aria属性是提升可访问性的重要方法。

使用<label>标签
  • 关联输入框: <label>标签用于定义某个表单元素的说明,并通过for属性与对应的输入框关联。这样,屏幕阅读器等辅助技术可以准确地朗读标签,帮助视力受损的用户理解每个输入框的功能。

  • 改善用户体验: 当用户点击标签时,浏览器会将焦点移到对应的输入框,这对所有用户都有益。

示例
<form><label for="email">电子邮件:</label><input type="email" id="email" name="email" required placeholder="请输入您的电子邮件">
</form>

在这个示例中,<label><input>通过forid关联起来,提升了访问性。

使用aria属性

aria(Accessible Rich Internet Applications)属性用于增强Web应用的可访问性,特别是当使用自定义控件或动态内容时。这些属性让辅助技术能更好地理解页面元素的角色、状态和目的。

常用aria属性
  • aria-required: 指示输入字段是否为必填。
  • aria-invalid: 表示输入字段的内容是否有效。
  • aria-describedby: 关联描述字段的文本,提供更多上下文。
  • aria-labelledby: 关联另一个元素作为标记,用于提供描述。
示例
<form><label for="username">用户名:</label><input type="text" id="username" name="username" required aria-required="true" placeholder="请输入用户名"><span id="usernameHelp" aria-live="polite">用户名至少为3个字符。</span>
</form>

在这个例子中:

  • aria-required="true"表示用户名输入框是必填的,辅助技术会在朗读时告知用户。
  • aria-live="polite"用于动态内容区域,提示用户实时的反馈信息(如输入错误或状态更新),而不会打断当前阅读。

四、表单设计实例

1、注册表单
<form action="/submit" method="post" style="max-width:500px;margin:auto;"><h2>注册表单</h2><label for="name">姓名:</label><input type="text" id="name" name="name" required placeholder="请输入姓名"><label for="email">电子邮件:</label><input type="email" id="email" name="email" required placeholder="请输入电子邮件"><label for="password">密码:</label><input type="password" id="password" name="password" required placeholder="请输入密码"><input type="submit" value="注册" style="background-color:#4CAF50;color:white;padding:15px 20px;border:none;border-radius:4px;cursor:pointer;">
</form>

在这里插入图片描述


通过遵循这些准则,不仅能确保表单在功能性上的完备,还能创造愉悦的用户体验。表单设计不仅仅是技术问题,还是用户体验设计的一部分。通过良好的设计,我们可以显著提升数据收集的效率和用户满意度。

2、购物车与结账表单
<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>结账表单</title><style>body {font-family: Arial, sans-serif;margin: 20px;padding: 20px;border: 1px solid #ccc;border-radius: 5px;max-width: 400px;}input[type="text"],input[type="email"],input[type="tel"],input[type="number"],textarea {width: 100%;padding: 8px;margin: 10px 0;border: 1px solid #ccc;border-radius: 4px;}input[type="submit"] {background-color: #4CAF50;color: white;padding: 10px;border: none;border-radius: 4px;cursor: pointer;}</style>
</head>
<body><h2>结账表单</h2><form action="/checkout" method="post"><label for="name">姓名:</label><input type="text" id="name" name="name" required placeholder="请输入姓名"><label for="email">电子邮件:</label><input type="email" id="email" name="email" required placeholder="请输入您的电子邮件"><label for="phone">电话:</label><input type="tel" id="phone" name="phone" required placeholder="请输入联系电话"><label for="address">地址:</label><textarea id="address" name="address" required placeholder="请输入收货地址"></textarea><label for="cardNumber">信用卡号码:</label><input type="number" id="cardNumber" name="cardNumber" required placeholder="请输入信用卡号码" minlength="13" maxlength="19"><label for="expiryDate">到期日期:</label><input type="text" id="expiryDate" name="expiryDate" required placeholder="MM/YY" pattern="\d{2}/\d{2}"><label for="cvv">CVV:</label><input type="number" id="cvv" name="cvv" required placeholder="请输入CVV" minlength="3" maxlength="4"><input type="submit" value="提交订单">
</form></body>
</html>
表单字段解释
  1. 姓名: 用于收集用户的姓名。
  2. 电子邮件: 收集用户的电子邮件地址以便进行确认和联系。
  3. 电话: 用于收集联系电话。
  4. 地址: 收集收货地址,使用<textarea>以方便输入较长的信息。
  5. 信用卡号码: 用户输入信用卡的号码,要求长度为13到19位。
  6. 到期日期: 格式为MM/YY,使用正则表达式模式进行输入验证。
  7. CVV: 输入信用卡的安全码(CVV),长度一般为3或4位。
设计要点
  • 表单结构: 使用样式让表单更美观且结构合理。
  • 输入验证: 使用HTML5的requiredpatternminlengthmaxlength属性确保用户输入的信息符合要求。
  • 响应式: 表单在不同设备上都应易于使用(本示例简单示例未包含响应式设计)。

在这里插入图片描述


http://www.mrgr.cn/news/39630.html

相关文章:

  • 数学期望专题
  • Java对象访问机制:句柄访问与直接指针访问
  • MySQL基础篇 - 约束
  • 基于 Visual Studio C# 的 Hypack 测量成果 RAW 原始数据解算
  • 【ADC】使用全差分放大器驱动 SAR 型 ADC 时的输入输出范围
  • 探索PyUSB:Python与USB设备的桥梁
  • 64.【C语言】再议结构体(下)
  • 编程题 7-13 日K蜡烛图【PAT】
  • Hadoop搭建及Springboot集成
  • Redis缓存穿透解决方案之一:布隆过滤器与计数型布隆过滤器概述以及两者在Spring中的使用
  • 道可云人工智能元宇宙每日资讯|首届天府人工智能大会在成都举办
  • HashMap原理
  • 方法 WebDriverWait
  • 创客匠人第二期“老蒋面对面”交流会圆满收官!
  • 编程题 7-14 求整数段和【PAT】
  • Gromacs pdbtogro and grotopdb问题
  • 微信广告任务平台 ajax_upload 任意文件上传漏洞
  • Linux之实战命令21:stat应用实例(五十五)
  • 麦克风哪个好,领夹麦什么品牌最好,最新领夹麦克风品牌排行榜
  • 企业微信群发工具:精准营销与高效沟通的新篇章