Search K
Appearance
Appearance
关键词: HTML5新增输入类型, email输入, url输入, tel输入, number输入, range输入, date输入, color输入, search输入, 表单验证
<input type="email">用于创建专门用于输入邮箱地址的输入框:
<input type="email" name="email" id="email"><!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>邮箱输入类型</title>
</head>
<body>
<h1>邮箱输入示例</h1>
<form>
<label for="email">邮箱地址:</label>
<input type="email" id="email" name="email"
placeholder="请输入您的邮箱" required>
</form>
</body>
</html>使用multiple属性允许输入多个邮箱地址:
<form>
<label for="emails">多个邮箱(用逗号分隔):</label>
<input type="email" id="emails" name="emails"
multiple placeholder="email1@example.com, email2@example.com">
</form><form>
<!-- 必填邮箱 -->
<input type="email" name="email" required>
<!-- 带默认值的邮箱 -->
<input type="email" name="email" value="user@example.com">
<!-- 只读邮箱 -->
<input type="email" name="email" value="admin@site.com" readonly>
<!-- 禁用邮箱输入 -->
<input type="email" name="email" disabled>
<!-- 带自动完成的邮箱 -->
<input type="email" name="email" autocomplete="email">
</form>HTML5会自动验证邮箱格式的基本要求:
<form>
<label for="email">邮箱验证示例:</label>
<input type="email" id="email" name="email" required>
<button type="submit">提交</button>
</form><input type="url">用于创建专门用于输入网址的输入框:
<input type="url" name="website" id="website"><!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>网址输入类型</title>
</head>
<body>
<h1>网址输入示例</h1>
<form>
<fieldset>
<legend>网站信息</legend>
<label for="website">个人网站:</label>
<input type="url" id="website" name="website"
placeholder="https://www.example.com">
<label for="blog">博客地址:</label>
<input type="url" id="blog" name="blog"
placeholder="请输入您的博客网址" required>
</fieldset>
<button type="submit">保存</button>
</form>
</body>
</html><form>
<!-- 基本URL输入 -->
<input type="url" name="url" placeholder="http://example.com">
<!-- 必填URL -->
<input type="url" name="url" required>
<!-- 带默认值的URL -->
<input type="url" name="homepage" value="https://www.w3.org">
<!-- 多个URL输入 -->
<input type="url" name="urls" multiple>
</form><input type="tel">用于创建专门用于输入电话号码的输入框:
<input type="tel" name="phone" id="phone"><!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>电话输入类型</title>
</head>
<body>
<h1>电话输入示例</h1>
<form>
<fieldset>
<legend>联系信息</legend>
<label for="mobile">手机号码:</label>
<input type="tel" id="mobile" name="mobile"
placeholder="138-0000-0000" required>
<label for="home">家庭电话:</label>
<input type="tel" id="home" name="home"
placeholder="021-12345678">
<label for="office">办公电话:</label>
<input type="tel" id="office" name="office"
placeholder="+86-21-12345678">
</fieldset>
<button type="submit">保存联系信息</button>
</form>
</body>
</html><form>
<!-- 中国大陆手机号 -->
<input type="tel" name="mobile" pattern="[0-9]{3}-[0-9]{4}-[0-9]{4}"
placeholder="138-0000-0000">
<!-- 带国际区号 -->
<input type="tel" name="international" pattern="\+[0-9]{2,3}-[0-9]{2,4}-[0-9]{7,8}"
placeholder="+86-21-12345678">
<!-- 简单数字格式 -->
<input type="tel" name="simple" pattern="[0-9]{11}"
placeholder="13800000000">
</form><input type="number">用于创建专门用于输入数字的输入框:
<input type="number" name="quantity" id="quantity"><!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>数字输入类型</title>
</head>
<body>
<h1>数字输入示例</h1>
<form>
<fieldset>
<legend>商品信息</legend>
<!-- 基本数字输入 -->
<label for="price">价格:</label>
<input type="number" id="price" name="price"
min="0" max="10000" step="0.01"
placeholder="0.00">
<!-- 数量输入 -->
<label for="quantity">数量:</label>
<input type="number" id="quantity" name="quantity"
min="1" max="100" step="1" value="1">
<!-- 评分输入 -->
<label for="rating">评分(1-10):</label>
<input type="number" id="rating" name="rating"
min="1" max="10" step="1">
</fieldset>
<button type="submit">提交</button>
</form>
</body>
</html><form>
<!-- 最小值和最大值 -->
<input type="number" name="score" min="0" max="100">
<!-- 步长控制 -->
<input type="number" name="weight" step="0.1" min="0">
<!-- 整数输入 -->
<input type="number" name="age" step="1" min="0" max="150">
<!-- 负数允许 -->
<input type="number" name="temperature" step="0.1">
<!-- 默认值 -->
<input type="number" name="default" value="50" min="0" max="100">
</form><input type="range">用于创建滑块控件:
<input type="range" name="volume" id="volume"><!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>范围输入类型</title>
</head>
<body>
<h1>范围输入示例</h1>
<form>
<fieldset>
<legend>设置选项</legend>
<!-- 音量控制 -->
<label for="volume">音量:</label>
<input type="range" id="volume" name="volume"
min="0" max="100" value="50" step="1">
<!-- 亮度调节 -->
<label for="brightness">屏幕亮度:</label>
<input type="range" id="brightness" name="brightness"
min="0" max="100" value="80" step="5">
<!-- 价格区间 -->
<label for="price-range">价格范围:</label>
<input type="range" id="price-range" name="price-range"
min="0" max="5000" value="1000" step="100">
</fieldset>
<button type="submit">应用设置</button>
</form>
</body>
</html><form>
<!-- 基本范围控件 -->
<input type="range" name="basic" min="0" max="100" value="50">
<!-- 小步长范围 -->
<input type="range" name="precise" min="0" max="1" step="0.01" value="0.5">
<!-- 大范围控件 -->
<input type="range" name="large" min="0" max="10000" step="100" value="5000">
<!-- 负值范围 -->
<input type="range" name="negative" min="-100" max="100" value="0">
</form><!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>日期输入类型</title>
</head>
<body>
<h1>日期时间输入示例</h1>
<form>
<fieldset>
<legend>时间信息</legend>
<!-- 日期选择 -->
<label for="birthday">出生日期:</label>
<input type="date" id="birthday" name="birthday"
min="1900-01-01" max="2024-12-31">
<!-- 时间选择 -->
<label for="meeting-time">会议时间:</label>
<input type="time" id="meeting-time" name="meeting-time"
min="09:00" max="18:00" step="1800">
<!-- 日期时间选择 -->
<label for="appointment">预约时间:</label>
<input type="datetime-local" id="appointment" name="appointment"
min="2024-01-01T00:00" max="2024-12-31T23:59">
<!-- 周选择 -->
<label for="project-week">项目周:</label>
<input type="week" id="project-week" name="project-week">
<!-- 月份选择 -->
<label for="report-month">报告月份:</label>
<input type="month" id="report-month" name="report-month"
min="2024-01" max="2024-12">
</fieldset>
<button type="submit">确定时间</button>
</form>
</body>
</html><form>
<!-- 完整日期 -->
<input type="date" name="date" value="2024-01-01">
<!-- 时间 -->
<input type="time" name="time" value="14:30">
<!-- 本地日期时间 -->
<input type="datetime-local" name="datetime" value="2024-01-01T14:30">
<!-- 月份 -->
<input type="month" name="month" value="2024-01">
<!-- 周 -->
<input type="week" name="week" value="2024-W01">
<!-- 带限制的日期 -->
<input type="date" name="limited" min="2024-01-01" max="2024-12-31">
</form><input type="color">用于创建颜色选择器:
<input type="color" name="theme-color" id="theme-color"><!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>颜色输入类型</title>
</head>
<body>
<h1>颜色选择示例</h1>
<form>
<fieldset>
<legend>主题设置</legend>
<!-- 主题色选择 -->
<label for="primary-color">主色调:</label>
<input type="color" id="primary-color" name="primary-color"
value="#007bff">
<!-- 背景色选择 -->
<label for="bg-color">背景颜色:</label>
<input type="color" id="bg-color" name="bg-color"
value="#ffffff">
<!-- 文字颜色 -->
<label for="text-color">文字颜色:</label>
<input type="color" id="text-color" name="text-color"
value="#333333">
</fieldset>
<button type="submit">应用主题</button>
</form>
</body>
</html><form>
<!-- 默认蓝色 -->
<input type="color" name="blue" value="#0000ff">
<!-- 默认红色 -->
<input type="color" name="red" value="#ff0000">
<!-- 默认绿色 -->
<input type="color" name="green" value="#00ff00">
<!-- 默认黑色 -->
<input type="color" name="black" value="#000000">
<!-- 默认白色 -->
<input type="color" name="white" value="#ffffff">
</form><input type="search">用于创建搜索输入框:
<input type="search" name="query" id="query"><!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>搜索输入类型</title>
</head>
<body>
<h1>搜索输入示例</h1>
<form action="/search" method="get">
<!-- 网站搜索 -->
<label for="site-search">站内搜索:</label>
<input type="search" id="site-search" name="q"
placeholder="请输入搜索关键词" required>
<button type="submit">搜索</button>
</form>
<form action="/filter" method="get">
<!-- 产品筛选 -->
<fieldset>
<legend>产品搜索</legend>
<label for="product-search">产品名称:</label>
<input type="search" id="product-search" name="product"
placeholder="搜索产品">
<label for="brand-search">品牌:</label>
<input type="search" id="brand-search" name="brand"
placeholder="搜索品牌">
</fieldset>
<button type="submit">搜索产品</button>
</form>
</body>
</html><form>
<!-- 基本搜索框 -->
<input type="search" name="search" placeholder="搜索...">
<!-- 带历史记录的搜索 -->
<input type="search" name="search" list="search-history">
<datalist id="search-history">
<option value="HTML5">
<option value="CSS3">
<option value="JavaScript">
<option value="React">
<option value="Vue">
</datalist>
<!-- 自动完成搜索 -->
<input type="search" name="search" autocomplete="on">
<!-- 实时搜索 -->
<input type="search" name="live-search" placeholder="实时搜索">
</form><!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>HTML5新增输入类型综合示例</title>
</head>
<body>
<h1>用户注册表单</h1>
<form action="/register" method="post">
<fieldset>
<legend>基本信息</legend>
<!-- 邮箱 -->
<label for="email">邮箱地址:</label>
<input type="email" id="email" name="email" required
placeholder="user@example.com">
<!-- 电话 -->
<label for="phone">手机号码:</label>
<input type="tel" id="phone" name="phone" required
pattern="[0-9]{3}-[0-9]{4}-[0-9]{4}"
placeholder="138-0000-0000">
<!-- 个人网站 -->
<label for="website">个人网站:</label>
<input type="url" id="website" name="website"
placeholder="https://www.example.com">
<!-- 年龄 -->
<label for="age">年龄:</label>
<input type="number" id="age" name="age"
min="18" max="100" required>
</fieldset>
<fieldset>
<legend>偏好设置</legend>
<!-- 主题颜色 -->
<label for="theme">主题颜色:</label>
<input type="color" id="theme" name="theme" value="#007bff">
<!-- 通知频率 -->
<label for="frequency">通知频率:</label>
<input type="range" id="frequency" name="frequency"
min="0" max="10" value="5" step="1">
<!-- 生日 -->
<label for="birthday">生日:</label>
<input type="date" id="birthday" name="birthday"
min="1920-01-01" max="2006-01-01">
<!-- 首选联系时间 -->
<label for="contact-time">首选联系时间:</label>
<input type="time" id="contact-time" name="contact-time"
min="09:00" max="21:00">
</fieldset>
<fieldset>
<legend>搜索偏好</legend>
<!-- 兴趣关键词 -->
<label for="interests">兴趣关键词:</label>
<input type="search" id="interests" name="interests"
placeholder="输入您感兴趣的内容">
</fieldset>
<button type="submit">注册</button>
<button type="reset">重置</button>
</form>
</body>
</html><form>
<h2>移动端优化的表单</h2>
<!-- 移动端键盘优化 -->
<input type="email" name="email" placeholder="邮箱"
autocomplete="email" autocapitalize="off">
<input type="tel" name="phone" placeholder="电话"
autocomplete="tel">
<input type="url" name="website" placeholder="网站"
autocomplete="url" autocapitalize="off">
<input type="number" name="amount" placeholder="金额"
inputmode="decimal">
<input type="search" name="search" placeholder="搜索"
autocomplete="off" autocorrect="off">
</form><!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>兼容性处理示例</title>
</head>
<body>
<h1>兼容性处理</h1>
<form>
<!-- 基本回退方案 -->
<label for="email">邮箱(如不支持会回退为text类型):</label>
<input type="email" id="email" name="email"
placeholder="user@example.com">
<!-- 带有备用方案的日期选择 -->
<label for="date">日期:</label>
<input type="date" id="date" name="date"
placeholder="YYYY-MM-DD" pattern="[0-9]{4}-[0-9]{2}-[0-9]{2}">
<!-- 数字输入的回退 -->
<label for="number">数字:</label>
<input type="number" id="number" name="number"
pattern="[0-9]+" placeholder="请输入数字">
<!-- 颜色选择的回退 -->
<label for="color">颜色:</label>
<input type="color" id="color" name="color"
value="#000000" pattern="#[0-9a-fA-F]{6}">
</form>
</body>
</html><form>
<fieldset>
<legend>渐进增强的表单</legend>
<!-- 在不支持的浏览器中会显示为普通文本框 -->
<label for="modern-email">现代邮箱输入:</label>
<input type="email" id="modern-email" name="email"
required placeholder="example@domain.com">
<!-- 带验证模式的回退 -->
<label for="modern-phone">电话号码:</label>
<input type="tel" id="modern-phone" name="phone"
pattern="[0-9]{3}-[0-9]{4}-[0-9]{4}"
title="请输入格式:XXX-XXXX-XXXX">
<!-- 日期输入的回退 -->
<label for="modern-date">选择日期:</label>
<input type="date" id="modern-date" name="date"
min="2024-01-01" max="2024-12-31"
placeholder="请选择日期">
</fieldset>
</form>A: 不支持的浏览器会将新增输入类型回退为普通的text类型,基本功能仍然可用,只是失去了特殊的验证和界面特性。
A: 可以使用pattern属性配合正则表达式进行验证,同时结合title属性提供用户提示,这在所有浏览器中都有效。
A: 移动端会根据输入类型自动显示相应的虚拟键盘,比如email类型会显示包含@符号的键盘,tel类型显示数字键盘,提升用户体验。
A: number类型会进行数值验证,只允许输入数字,提供步进按钮,支持min、max、step属性,而text类型接受任何文本输入。
A: HTML5的date类型使用标准的YYYY-MM-DD格式,显示格式由浏览器和用户的区域设置决定。如需自定义格式,可能需要使用JavaScript库或保持使用text类型配合pattern验证。
下一节预览:下一节我们将学习第3章第4节 - 其他表单元素,重点介绍textarea、select、datalist等表单控件的使用方法。