<form action="">
<input type="text">
<input type="reset">
</form>
<script>
let _input = document.getElementsByTagName("input")[0];
// 当一个 <input>, <select>, 或 <textarea> 元素的 value 被修改时,会触发 input 事件。
_input.oninput = function () {
console.log(this.value);
console.log("当输入文字,再按重置后,你为什么不触发");
}
let reset = document.querySelector('input[type="reset"]');
reset.onclick = function () {
setTimeout(function () {
// 由此可以看出 _input.value 变为 "",
console.log(_input.value);
}, 2000)
}
// 划重点
// 那用input[type="reset"]去重置input.oninput这样的文本框,为什么没有触发oninput事件?
</script>
根据标准HTML技术文档:
https://html.spec.whatwg.org/...
特别引用以下内容
表单中的重置动作,不会引起input事件