HTML input type="number"

2024 年 8 月 28 日 | 阅读 9 分钟

创建和设计网页的主要语言是超文本标记语言,也称为 HTML。除了 HTML 的不同输入格式外,它还允许通过使用 Web 表单在 Web 和用户之间进行交互。一种输入类型是“number”。在本文中,我们将结合其属性、用例、浏览器支持、可访问性和最佳实践来讨论 HTML 输入类型 number。

HTML 输入类型 number 简介

HTML 提供了 number 输入类型,仅允许用户输入数字。它提供了一种直接输入数字信息的方式,因此非常适合需要数字输入的表单。此外,number 输入类型是 HTML5 中添加的表单输入类型之一,旨在改善用户体验和处理不同数据类型。

基本语法

让我们从检查 number 输入类型的基本语法开始

  • type="number": 此属性表示输入应为数字。
  • name="quantity": 此属性为元素提供标识,使服务器端脚本能够识别和处理输入元素。
  • min="0" and max="100": 这些属性定义了输入值的最小和最大可能限制。这将确保用户无法输入超出该范围的值。
  • step="1": 它表示值的变化步长。在这种情况下,它必须是 1,因为用户将以 1 为单位进行增加或减少。
  • value="0": 此属性确定输入的起点。在此上下文中设置为零。

浏览器支持

如今,number 输入类型已被所有现代 Web 浏览器广泛接受,例如 Google Chrome、Mozilla Firefox、Safari、Microsoft Edge 等。但是,由于 Web 环境不断变化,用户应始终确认他们使用的是最新的浏览器支持信息。

用例

1. 数量输入

number 输入类型在数量输入中非常流行且被广泛使用。例如,电子商务网站上的用户可能需要输入他们希望订购的产品数量。使用 number 输入类型可以使此过程更加轻松,它能在移动设备上提供数字键盘,并将输入限制为有效的数字。

2. 年龄输入

number 输入类型为收集年龄信息提供了最佳选择。您应该为用户的年龄设置合理的最小和最大值范围。

3. 范围输入

使用 number 类型输入也可以实现范围值,使用户更容易在更小的空间内进行选择。此类应用在音量控制等应用程序中很常见。

可访问性注意事项

在使用 number 输入类型时,必须考虑可访问性,以确保您的表单对所有人都可用,包括残障人士。以下是一些可访问性注意事项:

1. 标签

使用 <label> 元素为每个 number 输入提供有意义的标签。这使得屏幕阅读器能够为视障人士提供一些背景信息。

2. 错误消息

如果发生验证错误,例如输入的值超出了指定范围,请提供具体且信息丰富的错误消息。屏幕阅读器用户应该能够理解出了什么问题。

3. ARIA 属性

您还可以通过包含一些 ARIA(可访问富 Internet 应用程序)属性来提高其可访问性。值得一提的是,可以利用 aria-describedby 属性将输入与对其角色的解释关联起来。

4. 样式和自定义

在大多数情况下,number 输入的默认外观都可以正常工作。但是,您可以使其与您网站的其余设计无缝融合。可以使用 CSS 在视觉上修改输入。

最佳实践

为确保流畅的用户体验并保持代码质量,在使用 number 输入类型时请考虑以下最佳实践:

1. 验证

始终在服务器端检查用户输入以避免提交恶意数据非常重要。您还可以使用 required、min 和 max 等 HTML 属性进行客户端验证。

2. 提供默认值

通过为 number 输入设置正确或最佳的默认值来最大程度地减少用户的工作量。这尤其适用于数量输入等情况。

3. 使用占位符文本

另一种方法是使用占位符指示含义,其中示例甚至关于输入应如何构建的提示都会很有用。用户会发现这很有益,并能改善用户体验。

4. 移动友好设计

确保您的表单在包括台式机、平板电脑和移动设备在内的所有平台上都具有响应性和用户友好性,因为这会触发带 number 输入类型的数字键盘。

高级功能和属性

虽然我们已经介绍了 number 输入类型的主要基础知识,但 HTML5 还提供了额外的功能和属性,用于改进此类型的外观和功能。

1. Pattern 属性

Pattern 是一个您可以用来指示输入值应符合的正则表达式的属性。它们很方便,特别是当它们有助于确保特定的数字输入格式时。

例如,在这种情况下,pattern 属性确保用户输入不超过三位数的数字。title 属性提供了有关预期格式的补充信息。

2. Disabled 属性

可以使用 disabled 属性将 number 输入初始禁用。当您想要提供一个预填充数据且不应更改的未修改表单时,请使用它。

3. Readonly 属性

number 输入属性与 disabled 属性非常相似,都阻止用户更改数字。但是,此值仍可随表单一起提交。

4. AutoFocus 属性

将 autofocus 属性设置为 number 输入将帮助用户在页面加载时立即在必需字段中输入数据。

5. Form 属性

form 属性可以连接范围输入和您的数字输入字段,即使它们不在同一个表单中。

使用 JavaScript 处理用户输入

通过 JavaScript,甚至可以动态地增强 number 输入的功能。监听 input 或 change 事件,并根据用户的响应采取相应措施。

HandleInput 是当用户与具有“oninput”属性的 number 输入交互时调用的函数。动态更新其中一个结果元素是基于此输入值的。

浏览器兼容性和渐进增强

尽管对 numeric 输入类型的支持很广泛,但要注意优雅降级和渐进增强很重要。这包括确保您没有将某些浏览器排除在 HTML5 功能之外。

对于不支持 numeric 输入类型的浏览器,您可以提供回退选项或其他方法,例如使用带有 JavaScript 验证的 text 输入类型。

安全注意事项

在处理用户输入时,包括使用 HTML 的 number 输入类型输入的输入,都应解决安全问题。必须维护数据安全,以保护用户和您的 Web 应用程序免受漏洞侵害。以下是使用 number 输入时的一些关键安全注意事项:

1. 服务器端验证

在这方面,始终在服务器端验证数字输入很重要。虽然使用 min、max 和 pattern 等 HTML 属性进行客户端验证可以为用户提供有用的即时反馈,但顽固的攻击者知道如何绕过其限制。服务器端验证充当最后一道防线,确保只处理服务器有效且预期的数据。

2. 输入清理

清理数字数据以防止代码注入和其他类型的攻击。清理用户输入并移除恶意用户可能引入的任何不需要的或有害的字符、脚本等。使用具有内置输入清理功能的服务器端编程语言或库。

3. 避免整数溢出

确保您注意基于整数溢出的漏洞,特别是当数字输入用于计算或数量评估时。整数溢出可能导致不可预测甚至危险的行为以及漏洞。确保输入值得到验证和限制,以避免任何有害影响。

4. 数据加密

数字输入是一种敏感信息,必须通过 HTTPS 传输以防止欺诈。静态数据也会被加密,以便获得访问权限的攻击者无法读取信息。

5. 防止 SQL 注入

在数据库查询的情况下,请确保数字输入与参数化查询或预编译语句一起使用,以免遭受 SQL 注入攻击。虽然应该避免在 SQL 查询中连接用户输入,但这可能导致漏洞。

6. 速率限制

确保您已实施表单和页面的速率限制,其中包含数字输入,以抵御暴力攻击和滥用。限制个人在特定部分发出的请求数量。

7. 会话安全

确保您已实施安全的会话管理。在这种情况下,数字输入可能与用户帐户或会话信息相关联。采用会话管理的最佳实践,以避免会话固定或会话劫持等问题。

8. 内容安全策略 (CSP)

添加内容安全策略标头,该标头将确定浏览器每个站点可用的资源。它提供了最小化 XSS 攻击漏洞的措施。

在 Web 表单中使用 HTML 的 number 输入类型来处理数字输入非常有效。它很简单,但具有不同的属性,使其适用于许多应用领域。结合其功能和 JavaScript 进行交互操作,可以创建友好、易于理解且安全的表单。请跟踪浏览器支持,遵循最佳实践,并考虑渐进增强,以便用户在不同浏览器、软件应用程序、平台或设备上获得统一且稳定的体验。

结论

因此,HTML number 输入类型是极大地增强在线表单的可用性和性能的宝贵组件。我们在描述中已经介绍了涉及的组件,包括语法、用例、浏览器支持、可访问性和建议。然而,其中一个特殊功能对于量化、年龄验证或滑块等情况也非常有用。

这种方法的优点与输入控件相关,例如 min/max、递增值或正则表达式。因此,它通过引导用户进行正确的输入来改善用户体验,并增加了收集数据的准确性。此外,使用 JavaScript 使 number 输入更加强大,从而实现交互动态和实时反馈。此外,number 输入的设计者考虑了移动适应性,以适应不同分辨率和显示器尺寸的便利性。

与任何其他 Web 开发元素一样,可访问性考虑对于 number 输入类型至关重要。开发人员应将每个输入与合理的标签相关联,为用户提供清晰的错误消息,并使用 ARIA 属性,以便所有能力的人都能适当地处理数字输入。此外,通过 CSS 关注样式和自定义有助于将数字输入融入网页的设计方案,从而形成视觉上统一的界面。

此外,为了跟上不断变化的 Web 景观中的浏览器支持和新标准。数字输入在现代浏览器中仍然很受欢迎,因此非常有用。开发人员应该灵活,并为不支持所有 HTML5 功能的浏览器考虑回退或替代方法。此外,必须增加安全性,例如服务器端验证、输入清理和防止常见的 SQL 注入等攻击。

number 输入类型代表着在不断变化的 Web 开发环境中提高用户界面并使其更具可访问性和安全性的一步。有几种方法可以有效地使用 number 输入类型来创建可用且安全的 Web 表单,从而在数字化快速发展的世界中提高 Web 应用程序的整体性能。


下一主题Combobox HTML