HTML 中的 标签是表单元素的核心组件,用于创建各种用户输入字段。作为一个空标签(没有闭合标签),它通过
type
属性来决定呈现何种输入控件,是实现用户与网页交互的基础元素。
<input type="text" name="username" value="默认值">
type
:指定输入类型,如 text
、password
、radio
等。name
:表单提交时的键名,用于服务器端接收数据。value
:输入的值,不同类型有不同表现。最基本的输入类型,用于单行文本输入。
<input type="text" name="username" placeholder="请输入用户名">
placeholder
:提供提示文本,输入内容时自动消失。输入内容会被掩码(通常用圆点)隐藏。
<input type="password" name="password" placeholder="请输入密码">
用于从多个选项中选择一个。
<input type="radio" name="gender" value="male" checked> 男
<input type="radio" name="gender" value="female"> 女
name
属性。checked
属性设置默认选中项。用于多选场景。
<input type="checkbox" name="hobby" value="reading" checked> 阅读
<input type="checkbox" name="hobby" value="swimming"> 游泳
checked
属性设置默认选中项。允许用户上传文件。
<input type="file" name="avatar" accept="image/*">
accept
:限制上传文件类型,如 image/*
表示所有图片格式。用于提交表单数据到服务器。
<input type="submit" value="提交">
用于重置表单所有输入项为初始值。
<input type="reset" value="重置">
用于存储不显示给用户但随表单提交的数据。
<input type="hidden" name="userId" value="123">
专门用于输入电子邮件地址,支持浏览器内置验证。
<input type="email" name="email" placeholder="[email protected]">
用于输入 URL,自动验证格式。
<input type="url" name="website" placeholder="https://example.com">
只能输入数字,支持 min
、max
和 step
属性。
<input type="number" name="age" min="1" max="100" step="1">
通过滑块选择值,需指定 min
、max
和 step
。
<input type="range" name="volume" min="0" max="100" step="5" value="50">
date
:选择日期(年-月-日)time
:选择时间(时:分:秒)datetime-local
:选择日期和时间<input type="date" name="birthdate">
<input type="time" name="appointment">
<input type="datetime-local" name="meeting">
外观与文本框相似,但在某些浏览器中会有特殊处理(如清除按钮)。
<input type="search" name="query" placeholder="搜索...">
用于输入电话号码,但不强制验证格式(因全球格式差异大)。
<input type="tel" name="phone" placeholder="请输入电话号码">
name
:表单提交时的键名。value
:输入的值,对提交起作用。disabled
:禁用输入框,值不会被提交。readonly
:只读模式,值会被提交但不可编辑。required
:必填项,提交前必须填写。minlength
和 maxlength
:限制文本长度。min
和 max
:限制数字或日期范围。pattern
:使用正则表达式验证输入格式。<input type="text" name="zipcode" pattern="[0-9]{6}" placeholder="邮政编码">
placeholder
:提示文本。autofocus
:页面加载时自动聚焦。autocomplete
:启用或禁用自动完成功能(on
或 off
)。spellcheck
:启用或禁用拼写检查(true
或 false
)。 标签支持多种事件,可通过 JavaScript 监听并响应。
onchange
:值改变且失去焦点时触发。oninput
:值改变时实时触发。onfocus
:获得焦点时触发。onblur
:失去焦点时触发。<input type="text" id="username" oninput="validate(this)">
<script>
function validate(input) {
if (input.value.length < 3) {
input.style.borderColor = 'red';
} else {
input.style.borderColor = 'green';
}
}
script>
虽然 的外观受浏览器默认样式影响,但可通过 CSS 进行定制。
input[type="text"] {
width: 100%;
padding: 10px;
border: 1px solid #ccc;
border-radius: 4px;
box-sizing: border-box;
}
通过隐藏原生控件,使用 CSS 创建自定义样式。
<style>
.custom-checkbox input {
display: none;
}
.custom-checkbox span {
display: inline-block;
width: 20px;
height: 20px;
border: 1px solid #ccc;
border-radius: 3px;
}
.custom-checkbox input:checked + span {
background-color: #2196F3;
}
style>
<div class="custom-checkbox">
<input type="checkbox" id="customCheck">
<span>span>
<label for="customCheck">自定义复选框label>
div>
通过 JavaScript 可动态操作 元素。
const input = document.getElementById('username');
// 获取值
const value = input.value;
// 设置值
input.value = '新值';
input.disabled = true; // 禁用
input.disabled = false; // 启用
function validateForm() {
const email = document.getElementById('email');
if (!email.checkValidity()) {
alert('请输入有效的电子邮件地址');
return false;
}
return true;
}
为提高可访问性,应注意以下几点:
<label for="username">用户名:label>
<input type="text" id="username" name="username">
<input type="text" id="search" aria-label="搜索产品">
<input type="email" id="email" aria-describedby="emailError">
<span id="emailError" class="error" aria-live="polite">span>
包含文本、密码、单选、复选框等多种输入类型。
使用 search
类型或普通文本框。
结合 range
和 number
实现数值范围筛选。
图片、文档等资源上传功能。
通过合理使用 标签及其属性,可以创建出功能丰富、用户友好的表单界面,满足各种 Web 应用的需求。