首页 / HTML5 入门教程 / 文本类输入:text/search/url/email/tel

HTML5 入门教程

文本类输入:text/search/url/email/tel

本教程共 110 篇 · 第 55 篇 · 更新于 2026-07-28 · 约 5 分钟阅读

HTML5HTML5 入门教程表单inputemailurltelpattern

55. 文本类输入:text/search/url/email/tel

本节目标:了解不同类型文本输入的用途,知道什么时候该用哪个。

这些类型看起来都是”输入文字”,但各有各的语义和特殊行为。

text:通用文本

最基础的类型,单行文本输入。

<input type="text" name="username" placeholder="请输入用户名">

placeholder 是占位提示文字,用户一开始输入就消失。

placeholder 不是标签!别用它替代

,屏幕阅读器可能忽略它。

search:搜索框

语义上表示搜索。某些浏览器会在右侧显示一个清除按钮(小叉号)。

<input type="search" name="q" placeholder="搜索关键词">

在 Safari 和 Chrome 里,搜索框的边角更圆润。功能和 text 基本一样,但语义更明确。

url:网址输入

专门输入网址用的。

<input type="url" name="website" placeholder="https://example.com">

提交时会自动校验是不是合法 URL 格式(必须有协议开头,比如 https://)。

手机上点这个输入框,键盘会变成带 .com 快捷按钮的版本。

email:邮箱输入

用来输入邮箱地址。

<input type="email" name="email" placeholder="your@email.com">

提交时自动校验邮箱格式(有没有 @ 符号)。

手机上键盘会显示 @ 按键,方便输入。

<!-- 支持输入多个邮箱 -->
<input type="email" name="emails" multiple>

multiple 属性后,用户可以输入多个逗号分隔的邮箱。

tel:电话号码

<input type="tel" name="phone" placeholder="13800138000">

注意:tel 类型不做格式校验。它的主要价值在移动端——手机会弹出数字键盘。

如果需要限制格式,配合 pattern 属性:

<input type="tel" name="phone" pattern="1[3-9]\d{9}" title="请输入11位手机号">

pattern 属性:自定义校验

pattern 接受一个正则表达式,提交时按此规则校验。

<input type="text" name="zipcode" pattern="[0-9]{6}" title="请输入6位邮编">

不符合规则时浏览器会弹出 title 里的提示信息。

pattern 只校验格式,不判断内容是否真正有效。服务器端还需要再次校验。

各类型移动键盘差异

type 类型移动端键盘特点
text默认字母键盘
search带搜索按钮
url带 .com、/ 快捷键
email带 @ 和 . 快捷键
tel数字键盘

选对 type,用户体验直接提升一个档次。

完整示例

一个”联系我”表单:

<form>
  <p>
    <label>搜索:
      <input type="search" name="q" placeholder="关键词...">
    </label>
  </p>
  <p>
    <label>网址:
      <input type="url" name="site" placeholder="https://">
    </label>
  </p>
  <p>
    <label>邮箱:
      <input type="email" name="email" placeholder="your@mail.com">
    </label>
  </p>
  <p>
    <label>电话:
      <input type="tel" name="phone" placeholder="13800138000">
    </label>
  </p>
  <p>
    <button type="submit">提交</button>
  </p>
</form>

手机上点进每个框,键盘都不一样。这就是选对 type 的好处。