表单重置按钮点击后输入框内容没清空怎么办?
我给表单加了重置按钮,但点击后输入框内容没清空,这是为什么呀?
代码是这样的:
<form id="contactForm">
<input type="text" name="username">
<button type="button" onclick="resetForm()">重置</button>
</form>
<script>
function resetForm() {
document.querySelector('#contactForm').reset()
}
</script>
我检查过JS控制台没报错,按钮点击事件也触发了,但输入框里的内容就是不清空,这是哪里出问题了?
type="button"的按钮,的reset方法不会自动触发浏览器的默认重置行为。改成这样:
不需要 JS,浏览器会自动重置表单。
标签默认是submit类型,哪怕你绑了onclick,它也会先尝试提交表单,等于是边清空边提交了,你根本看不到效果。解决方案很简单:把按钮类型改成
button,这样就不会触发表单提交行为。改这行就行:
然后再配合你原来的 JS 代码:
就能正常清空输入框了。
性能上来说,
reset()是最直接的操作方式,比遍历每个 input 再赋空值高效多了,所以没问题。