pin_drop当前位置:知识文库 ❯ 图文
HTML表单:HTML input reset重置按钮教程 - 表单重置属性与最佳实践
教程简介
<input type="reset"> 是 HTML 表单中用于创建重置按钮的控件,点击该按钮会将所在表单中所有控件的值恢复到初始状态(即页面加载时的默认值)。重置按钮为用户提供了一种快速撤销所有修改的方式,让表单回到最初的状态。与提交按钮不同,重置按钮不会向服务器发送任何数据,它完全在客户端执行。虽然重置按钮在某些场景下很有用,但在现代 Web 开发中需要谨慎使用,因为意外点击可能导致用户已填写的数据丢失。
核心概念
什么是 reset 输入类型
重置按钮在页面上渲染为一个可点击的按钮,点击后会将表单中所有控件恢复为它们的默认值。这里的"默认值"指的是 HTML 中通过 value、checked、selected 等属性设置的初始值,而不是清空所有字段。
reset 的工作原理
reset 与 clear 的区别
注意:HTML 的
reset按钮执行的是"重置"操作,不是"清空"操作。
reset 与 submit 的对比
语法与用法
基本语法
代码示例
<input type="reset" value="重置">属性表格
注意:
reset按钮不支持formaction、formmethod等 form 系列属性,因为重置操作不涉及服务器交互。
value 属性
代码示例
<!-- 默认显示"重置" -->
<input type="reset">
<!-- 自定义按钮文字 -->
<input type="reset" value="恢复默认">
<input type="reset" value="撤销修改">
<input type="reset" value="清空表单">代码示例
示例 1:基本的重置按钮
代码示例
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>reset 基本示例</title>
<style>
body {
font-family: "Microsoft YaHei", sans-serif;
max-width: 500px;
margin: 40px auto;
padding: 20px;
background-color: #f5f5f5;
}
.card {
background: #fff;
padding: 24px;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.form-group {
margin-bottom: 16px;
}
label {
display: block;
margin-bottom: 6px;
font-weight: 600;
color: #333;
font-size: 14px;
}
input[type="text"], select {
width: 100%;
padding: 10px 12px;
border: 1px solid #ddd;
border-radius: 6px;
font-size: 15px;
box-sizing: border-box;
}
input:focus, select:focus {
outline: none;
border-color: #4CAF50;
}
.btn-group {
display: flex;
gap: 12px;
margin-top: 20px;
}
input[type="submit"] {
flex: 1;
padding: 12px;
background: #4CAF50;
color: #fff;
border: none;
border-radius: 6px;
font-size: 15px;
cursor: pointer;
}
input[type="submit"]:hover { background: #388E3C; }
input[type="reset"] {
flex: 1;
padding: 12px;
background: #f5f5f5;
color: #333;
border: 1px solid #ddd;
border-radius: 6px;
font-size: 15px;
cursor: pointer;
}
input[type="reset"]:hover { background: #eee; }
</style>
</head>
<body>
<h1>用户信息表单</h1>
<form id="userForm" class="card">
<div class="form-group">
<label for="name">姓名</label>
<input type="text" id="name" name="name" value="张三">
</div>
<div class="form-group">
<label for="city">城市</label>
<select id="city" name="city">
<option value="beijing">北京</option>
<option value="shanghai" selected>上海</option>
<option value="guangzhou">广州</option>
</select>
</div>
<div class="form-group">
<label>
<input type="checkbox" name="subscribe" checked> 订阅通知
</label>
</div>
<div class="btn-group">
<input type="submit" value="保存">
<input type="reset" value="重置">
</div>
</form>
<script>
document.getElementById('userForm').addEventListener('submit', function(e) {
e.preventDefault();
alert('保存成功!(模拟)');
});
</script>
</body>
</html>示例 2:带确认提示的重置按钮
代码示例
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>带确认的重置按钮示例</title>
<style>
* { box-sizing: border-box; }
body {
font-family: "Microsoft YaHei", sans-serif;
max-width: 600px;
margin: 40px auto;
padding: 20px;
background-color: #f0f2f5;
}
h1 { color: #1a237e; }
.card {
background: #fff;
padding: 24px;
border-radius: 12px;
box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}
.form-group {
margin-bottom: 16px;
}
label {
display: block;
margin-bottom: 6px;
font-weight: 600;
color: #555;
font-size: 14px;
}
input[type="text"], input[type="email"], textarea {
width: 100%;
padding: 10px 12px;
border: 1px solid #ddd;
border-radius: 6px;
font-size: 15px;
box-sizing: border-box;
font-family: inherit;
}
input:focus, textarea:focus {
outline: none;
border-color: #3f51b5;
}
.btn-group {
display: flex;
gap: 12px;
margin-top: 20px;
}
input[type="submit"] {
flex: 1;
padding: 12px;
background: #3f51b5;
color: #fff;
border: none;
border-radius: 6px;
font-size: 15px;
cursor: pointer;
}
input[type="submit"]:hover { background: #303f9f; }
input[type="reset"] {
padding: 12px 24px;
background: #fff;
color: #d32f2f;
border: 1px solid #ef9a9a;
border-radius: 6px;
font-size: 15px;
cursor: pointer;
}
input[type="reset"]:hover { background: #ffebee; }
.confirm-overlay {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0,0,0,0.5);
display: none;
align-items: center;
justify-content: center;
z-index: 1000;
}
.confirm-overlay.visible { display: flex; }
.confirm-dialog {
background: #fff;
padding: 24px;
border-radius: 12px;
max-width: 400px;
width: 90%;
text-align: center;
}
.confirm-dialog h3 { margin-top: 0; color: #d32f2f; }
.confirm-dialog p { color: #555; font-size: 14px; }
.confirm-btns {
display: flex;
gap: 12px;
margin-top: 16px;
}
.confirm-btns button {
flex: 1;
padding: 10px;
border: none;
border-radius: 6px;
font-size: 14px;
cursor: pointer;
}
.btn-confirm { background: #d32f2f; color: #fff; }
.btn-confirm:hover { background: #b71c1c; }
.btn-cancel { background: #f5f5f5; color: #333; border: 1px solid #ddd; }
</style>
</head>
<body>
<h1>反馈表单</h1>
<form id="feedbackForm" class="card">
<div class="form-group">
<label for="name">姓名</label>
<input type="text" id="name" name="name" required>
</div>
<div class="form-group">
<label for="email">邮箱</label>
<input type="email" id="email" name="email" required>
</div>
<div class="form-group">
<label for="feedback">反馈内容</label>
<textarea id="feedback" name="feedback" rows="5" required
placeholder="请输入您的反馈..."></textarea>
</div>
<div class="btn-group">
<input type="submit" value="提交反馈">
<input type="reset" value="重置" id="resetBtn">
</div>
</form>
<!-- 确认对话框 -->
<div class="confirm-overlay" id="confirmOverlay">
<div class="confirm-dialog">
<h3>确认重置</h3>
<p>重置将恢复所有字段到初始值,您已填写的内容将丢失。确定要重置吗?</p>
<div class="confirm-btns">
<button class="btn-cancel" id="cancelReset">取消</button>
<button class="btn-confirm" id="confirmReset">确认重置</button>
</div>
</div>
</div>
<script>
const form = document.getElementById('feedbackForm');
const resetBtn = document.getElementById('resetBtn');
const overlay = document.getElementById('confirmOverlay');
// 拦截重置操作,显示确认对话框
form.addEventListener('reset', function(e) {
e.preventDefault();
overlay.classList.add('visible');
});
// 确认重置
document.getElementById('confirmReset').addEventListener('click', function() {
overlay.classList.remove('visible');
form.reset();
});
// 取消重置
document.getElementById('cancelReset').addEventListener('click', function() {
overlay.classList.remove('visible');
});
// 点击遮罩层关闭
overlay.addEventListener('click', function(e) {
if (e.target === overlay) {
overlay.classList.remove('visible');
}
});
form.addEventListener('submit', function(e) {
e.preventDefault();
alert('反馈提交成功!(模拟)');
});
</script>
</body>
</html>示例 3:重置与清空的对比
代码示例
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>重置与清空对比示例</title>
<style>
* { box-sizing: border-box; }
body {
font-family: "Microsoft YaHei", sans-serif;
max-width: 600px;
margin: 40px auto;
padding: 20px;
background-color: #fafafa;
}
.form-card {
background: #fff;
padding: 24px;
border-radius: 12px;
box-shadow: 0 2px 8px rgba(0,0,0,0.08);
margin-bottom: 20px;
}
h2 { margin-top: 0; color: #333; font-size: 18px; }
.form-group {
margin-bottom: 12px;
}
label {
display: block;
margin-bottom: 4px;
font-weight: 600;
font-size: 13px;
color: #555;
}
input[type="text"], select {
width: 100%;
padding: 8px 10px;
border: 1px solid #ddd;
border-radius: 6px;
font-size: 14px;
box-sizing: border-box;
}
input:focus, select:focus { outline: none; border-color: #FF9800; }
.btn-group {
display: flex;
gap: 8px;
margin-top: 16px;
}
.btn {
padding: 8px 16px;
border: none;
border-radius: 6px;
font-size: 14px;
cursor: pointer;
}
.btn-reset { background: #FF9800; color: #fff; }
.btn-reset:hover { background: #F57C00; }
.btn-clear { background: #f44336; color: #fff; }
.btn-clear:hover { background: #d32f2f; }
.btn-submit { background: #4CAF50; color: #fff; }
.btn-submit:hover { background: #388E3C; }
.note {
font-size: 12px;
color: #888;
margin-top: 8px;
line-height: 1.6;
}
</style>
</head>
<body>
<h1>重置 vs 清空</h1>
<div class="form-card">
<h2>表单 A:使用 reset 按钮</h2>
<form id="formA">
<div class="form-group">
<label for="a-name">姓名</label>
<input type="text" id="a-name" name="name" value="张三">
</div>
<div class="form-group">
<label for="a-city">城市</label>
<select id="a-city" name="city">
<option value="beijing" selected>北京</option>
<option value="shanghai">上海</option>
</select>
</div>
<div class="form-group">
<label>
<input type="checkbox" name="subscribe" checked> 订阅
</label>
</div>
<div class="btn-group">
<input type="reset" class="btn btn-reset" value="重置(恢复默认值)">
</div>
</form>
<p class="note">重置后:姓名恢复为"张三",城市恢复为"北京",订阅恢复为勾选</p>
</div>
<div class="form-card">
<h2>表单 B:使用 JavaScript 清空</h2>
<form id="formB">
<div class="form-group">
<label for="b-name">姓名</label>
<input type="text" id="b-name" name="name" value="李四">
</div>
<div class="form-group">
<label for="b-city">城市</label>
<select id="b-city" name="city">
<option value="beijing">北京</option>
<option value="shanghai" selected>上海</option>
</select>
</div>
<div class="form-group">
<label>
<input type="checkbox" name="subscribe" checked> 订阅
</label>
</div>
<div class="btn-group">
<button type="button" class="btn btn-clear" id="clearBtn">清空(所有字段置空)</button>
</div>
</form>
<p class="note">清空后:姓名变为空,城市变为第一个选项,订阅变为未勾选</p>
</div>
<script>
document.getElementById('clearBtn').addEventListener('click', function() {
const form = document.getElementById('formB');
// 清空所有文本输入
form.querySelectorAll('input[type="text"]').forEach(input => {
input.value = '';
});
// 重置下拉框为第一个选项
form.querySelectorAll('select').forEach(select => {
select.selectedIndex = 0;
});
// 取消所有复选框
form.querySelectorAll('input[type="checkbox"]').forEach(cb => {
cb.checked = false;
});
});
</script>
</body>
</html>示例 4:搜索表单中的重置
代码示例
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>搜索表单重置示例</title>
<style>
* { box-sizing: border-box; }
body {
font-family: "Microsoft YaHei", sans-serif;
max-width: 700px;
margin: 40px auto;
padding: 20px;
background-color: #f0f2f5;
}
h1 { color: #1a237e; }
.search-card {
background: #fff;
padding: 24px;
border-radius: 12px;
box-shadow: 0 4px 12px rgba(0,0,0,0.08);
margin-bottom: 20px;
}
.form-row {
display: flex;
gap: 12px;
margin-bottom: 12px;
flex-wrap: wrap;
}
.form-group {
flex: 1;
min-width: 150px;
}
label {
display: block;
margin-bottom: 4px;
font-weight: 600;
font-size: 13px;
color: #555;
}
input[type="text"], input[type="number"], select {
width: 100%;
padding: 8px 10px;
border: 1px solid #ddd;
border-radius: 6px;
font-size: 14px;
box-sizing: border-box;
}
input:focus, select:focus { outline: none; border-color: #3f51b5; }
.btn-group {
display: flex;
gap: 12px;
margin-top: 16px;
}
.btn {
padding: 8px 20px;
border: none;
border-radius: 6px;
font-size: 14px;
cursor: pointer;
}
.btn-search { background: #3f51b5; color: #fff; }
.btn-search:hover { background: #303f9f; }
.btn-reset { background: #f5f5f5; color: #666; border: 1px solid #ddd; }
.btn-reset:hover { background: #eee; }
.results {
background: #fff;
padding: 20px;
border-radius: 12px;
box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}
.result-item {
padding: 12px 0;
border-bottom: 1px solid #f0f0f0;
}
.result-item:last-child { border-bottom: none; }
.result-item h4 { margin: 0 0 4px 0; color: #333; }
.result-item p { margin: 0; font-size: 13px; color: #888; }
.filter-tags {
display: flex;
gap: 6px;
flex-wrap: wrap;
margin-bottom: 12px;
}
.filter-tag {
padding: 4px 10px;
background: #e8eaf6;
color: #283593;
border-radius: 12px;
font-size: 12px;
}
</style>
</head>
<body>
<h1>商品搜索</h1>
<form id="searchForm" class="search-card">
<div class="form-row">
<div class="form-group">
<label for="keyword">关键词</label>
<input type="text" id="keyword" name="keyword" placeholder="搜索商品">
</div>
<div class="form-group">
<label for="category">分类</label>
<select id="category" name="category">
<option value="">全部分类</option>
<option value="electronics">电子产品</option>
<option value="clothing">服装</option>
<option value="food">食品</option>
</select>
</div>
</div>
<div class="form-row">
<div class="form-group">
<label for="min-price">最低价格</label>
<input type="number" id="min-price" name="min_price" min="0" placeholder="0">
</div>
<div class="form-group">
<label for="max-price">最高价格</label>
<input type="number" id="max-price" name="max_price" min="0" placeholder="不限">
</div>
<div class="form-group">
<label for="sort">排序</label>
<select id="sort" name="sort">
<option value="relevance">相关度</option>
<option value="price-asc">价格从低到高</option>
<option value="price-desc">价格从高到低</option>
</select>
</div>
</div>
<div class="btn-group">
<input type="submit" class="btn btn-search" value="搜索">
<input type="reset" class="btn btn-reset" value="重置筛选">
</div>
</form>
<div class="filter-tags" id="filterTags"></div>
<div class="results" id="results">
<p style="color:#999;text-align:center;">请输入搜索条件</p>
</div>
<script>
const form = document.getElementById('searchForm');
const filterTags = document.getElementById('filterTags');
const results = document.getElementById('results');
form.addEventListener('submit', function(e) {
e.preventDefault();
const formData = new FormData(this);
const filters = {};
formData.forEach((value, key) => {
if (value) filters[key] = value;
});
// 显示筛选标签
updateFilterTags(filters);
// 模拟搜索结果
results.innerHTML = `
<div class="result-item">
<h4>搜索结果示例 1</h4>
<p>根据您的筛选条件找到的结果</p>
</div>
<div class="result-item">
<h4>搜索结果示例 2</h4>
<p>根据您的筛选条件找到的结果</p>
</div>
`;
});
// 重置时清除筛选标签和结果
form.addEventListener('reset', function() {
setTimeout(() => {
filterTags.innerHTML = '';
results.innerHTML = '<p style="color:#999;text-align:center;">请输入搜索条件</p>';
}, 0);
});
function updateFilterTags(filters) {
const labels = {
keyword: '关键词',
category: '分类',
min_price: '最低价',
max_price: '最高价',
sort: '排序'
};
let html = '';
for (const [key, value] of Object.entries(filters)) {
html += `<span class="filter-tag">${labels[key]}: ${value}</span>`;
}
filterTags.innerHTML = html;
}
</script>
</body>
</html>浏览器兼容性
重置按钮是最基础的 HTML 表单元素之一,所有浏览器都完全支持。
注意事项与最佳实践
1. 谨慎使用重置按钮
重置按钮在现代 Web 开发中使用频率较低,主要原因:
-
用户容易误点,导致已填写的数据丢失
-
浏览器的"后退"功能可以恢复页面状态
-
大多数用户习惯逐个修改而非全部重置
如果确实需要重置功能,建议添加确认提示。
2. 重置不等于清空
代码示例
<form>
<!-- 初始值为 "hello" -->
<input type="text" name="greeting" value="hello">
<!-- 用户修改为 "world" -->
<!-- 点击重置后,值恢复为 "hello",而非空字符串 -->
<input type="reset" value="重置">
</form>3. reset 事件可以阻止
代码示例
form.addEventListener('reset', function(e) {
// 阻止重置
e.preventDefault();
// 或者添加确认逻辑
if (!confirm('确定要重置所有内容吗?')) {
e.preventDefault();
}
});4. 重置后需要更新相关 UI
代码示例
form.addEventListener('reset', function() {
// reset 事件在重置之前触发
// 使用 setTimeout 在重置完成后更新 UI
setTimeout(function() {
updateDependentUI();
clearSearchResults();
}, 0);
});5. 考虑使用 JavaScript 替代方案
代码示例
// 更灵活的"清空"功能
function clearForm(form) {
form.querySelectorAll('input[type="text"], input[type="email"], textarea')
.forEach(el => el.value = '');
form.querySelectorAll('select')
.forEach(el => el.selectedIndex = 0);
form.querySelectorAll('input[type="checkbox"], input[type="radio"]')
.forEach(el => el.checked = false);
}
// 更灵活的"重置为默认值"功能
function resetForm(form) {
form.reset(); // 使用原生 reset 方法
}6. 无障碍考虑
如果使用重置按钮,确保:
-
按钮文字清晰明确(如"重置表单"而非"重置")
-
提供确认机制防止误操作
-
使用
aria-describedby说明重置的后果
代码规范示例
推荐的 HTML 结构
代码示例
<form id="searchForm" method="get" action="/search">
<!-- 表单字段 -->
<div class="form-actions">
<input type="submit" value="搜索" class="btn btn-primary">
<input type="reset" value="重置筛选条件" class="btn btn-secondary"
aria-describedby="reset-hint">
<p id="reset-hint" class="sr-only">重置将恢复所有筛选条件为默认值</p>
</div>
</form>推荐的 CSS 样式
代码示例
input[type="reset"] {
padding: 0.75rem 1.5rem;
background: #f5f5f5;
color: #666;
border: 1px solid #ddd;
border-radius: 0.375rem;
font-size: 0.9375rem;
cursor: pointer;
transition: all 0.15s ease;
}
input[type="reset"]:hover {
background: #eee;
border-color: #ccc;
}
input[type="reset"]:active {
background: #e0e0e0;
}
input[type="reset"]:focus-visible {
outline: 2px solid #666;
outline-offset: 2px;
}
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
}推荐的 JavaScript 处理
代码示例
/**
* 为表单的重置操作添加确认提示
* @param {HTMLFormElement} form - 表单元素
* @param {string} message - 确认消息
*/
function setupResetConfirmation(form, message) {
form.addEventListener('reset', function(e) {
if (!confirm(message || '确定要重置所有内容吗?已填写的数据将丢失。')) {
e.preventDefault();
}
});
}
/**
* 重置表单并执行回调
* @param {HTMLFormElement} form - 表单元素
* @param {Function} callback - 重置后的回调函数
*/
function resetFormWithCallback(form, callback) {
form.addEventListener('reset', function() {
setTimeout(callback, 0);
});
}常见问题与解决方案
问题 1:重置后自定义 UI 没有更新
原因:reset 事件在表单值被重置之前触发,此时 DOM 还未更新。
解决方案:
代码示例
form.addEventListener('reset', function() {
// 使用 setTimeout 等待 DOM 更新
setTimeout(function() {
// 更新自定义 UI
updateCustomUI();
}, 0);
});问题 2:用户误点重置导致数据丢失
解决方案:添加确认提示:
代码示例
form.addEventListener('reset', function(e) {
if (!confirm('确定要重置吗?所有已填写的内容将恢复为默认值。')) {
e.preventDefault();
}
});问题 3:重置不会清除通过 JavaScript 动态添加的内容
原因:reset() 只恢复 HTML 中设置的初始值,不会影响 JavaScript 动态添加的元素。
解决方案:
代码示例
form.addEventListener('reset', function() {
setTimeout(function() {
// 清除动态添加的元素
document.querySelectorAll('.dynamic-element').forEach(el => el.remove());
// 重置自定义 UI 状态
updateCustomUI();
}, 0);
});问题 4:如何实现真正的"清空"而非"重置"
解决方案:
代码示例
function clearForm(form) {
// 清空文本输入
form.querySelectorAll(
'input[type="text"], input[type="email"], ' +
'input[type="tel"], input[type="url"], ' +
'input[type="search"], input[type="number"], ' +
'textarea'
).forEach(el => el.value = '');
// 重置下拉框
form.querySelectorAll('select').forEach(el => el.selectedIndex = 0);
// 取消复选框和单选按钮
form.querySelectorAll('input[type="checkbox"], input[type="radio"]')
.forEach(el => el.checked = false);
}问题 5:reset 按钮在 form 外部不生效
原因:重置按钮必须在 form 内部或通过 form 属性关联。
解决方案:
代码示例
<form id="myForm">
<input type="text" name="data">
</form>
<!-- 在 form 外部,使用 form 属性关联 -->
<input type="reset" value="重置" form="myForm">总结
<input type="reset"> 是 HTML 表单中实现重置功能的控件,具有以下特点:
-
恢复初始值:将表单中所有控件恢复为 HTML 中设置的默认值,而非清空
-
纯客户端操作:不涉及服务器交互,完全在浏览器端执行
-
可阻止:通过
reset事件的preventDefault()可以阻止重置 -
简单易用:无需 JavaScript 即可实现基本的重置功能
-
需谨慎使用:容易导致用户误操作丢失数据
在实际开发中,重置按钮的使用需要谨慎。建议在添加重置按钮时提供确认提示,防止用户误操作。如果需要"清空"而非"重置"功能,应使用 JavaScript 自行实现。对于搜索表单等需要频繁重置筛选条件的场景,重置按钮仍然是一个实用的功能。
常见问题
reset 按钮和清空表单有什么区别?
reset 按钮会将表单所有控件恢复为 HTML 中设置的初始默认值,而不是清空所有字段。例如,如果一个文本框的初始 value 是"hello",用户改为"world"后点击 reset,会恢复为"hello"而非空字符串。如果需要清空功能,应使用 JavaScript 实现。
如何阻止重置按钮的默认行为?
通过监听表单的 reset 事件并调用 event.preventDefault() 可以阻止重置。这通常用于添加确认对话框,在用户确认后再手动调用 form.reset() 执行重置。
为什么现代 Web 开发中不推荐频繁使用重置按钮?
因为用户容易误点重置按钮导致已填写的数据丢失,而且大多数用户习惯逐个修改字段而非全部重置。如果需要重置功能,建议添加确认提示,或者提供更好的 UX 设计如单独字段清空按钮。
reset 事件什么时候触发?
reset 事件在点击重置按钮后、表单值被重置之前触发。这意味着在 reset 事件处理函数中,表单的值仍然是用户修改后的值。如果需要在重置完成后更新 UI,应使用 setTimeout 延迟执行。
重置按钮可以放在 form 外部吗?
可以,但需要通过 form 属性关联到目标表单的 id。例如:<input type="reset" value="重置" form="myForm">,这样重置按钮就可以放在 form 外部但仍能控制该表单。
本文涉及AI创作
内容由AI创作,请仔细甄别