调用表单 reset() 方法可重置原生控件为 HTML 初始值(非全空),如 value="张三" 仍显示“张三”;需手动处理自定义组件并同步触发 change 等事件。

直接调用表单元素的 reset() 方法就能一键重置整个表单,但它还原的是页面加载时的初始值,不是“清空为全空”,这点必须明确。
reset() 方法的核心行为
它会把所有原生可重置字段(input、textarea、select)恢复到它们在 HTML 中定义的默认状态:
-
<input value="张三">→ 重置后显示“张三”,不是空 -
<input value="">→ 重置后为空字符串 -
<input type="checkbox" checked>→ 重置后保持勾选 -
<select><option selected>北京</option></select>→ 重置后选中“北京”
基础用法:获取表单并调用 reset()
确保表单有唯一标识(如 id),然后执行:
const form = document.getElementById('myForm');
form.reset();
这等价于用户点击了 <input type="reset"> 或 <button type="reset"></button>。
注意自定义组件不会被自动重置
像日期选择器、封装的下拉框、富文本编辑器等非原生控件,reset() 不会影响它们。你需要额外处理:
- 让每个自定义组件暴露
clear()或reset()方法 - 在表单的
reset事件中手动调用这些方法 - 示例:
form.addEventListener('reset', () => { datePicker.clear(); tagInput.clear(); });
reset() 不会触发 input/change 事件
浏览器重置字段值时,不会派发 input、change 等用户交互事件。如果你依赖这些事件更新 UI 或校验状态,需在 reset 事件回调里手动同步:
- 重置后手动触发
dispatchEvent(new Event('change', { bubbles: true })) - 或直接调用你的校验函数,比如
validateForm()


















