为什么重置按钮点击后input元素的oninput事件不会触发?
时间:2025-02-26 16:45:01 229浏览 收藏
本文探讨了HTML表单中重置按钮`<input type="reset">`点击后,`<input>`元素的`oninput`事件为何不会触发的问题。虽然重置按钮会修改`<input>`元素的`value`属性,但根据HTML规范,重置按钮的重置算法对表单控件的修改不被视为用户引起的更改,因此不会触发`oninput`事件。 这与`oninput`事件仅在用户输入导致`value`属性改变时才触发的机制有关。
用 <input type="reset"> 为何不会触发 <input> 的 oninput 事件?
以下代码展示了 HTML 及其 JavaScript 事件侦听器:
<form action="">
<input type="text">
<input type="reset">
</form>
<script>
let _input = document.getElementsByTagName("input")[0];
_input.oninput = function () {
console.log(this.value);
}
let reset = document.querySelector('input[type="reset"]');
reset.onclick = function () {
setTimeout(function () {
console.log(_input.value);
}, 2000)
}
</script>然而,在你按下重置按钮后,oninput 事件并没有被触发。这是令人困惑的一点,因为 value 属性确实被修改了。
根据 HTML 规范,每个可重置元素都有其重置算法。作为其算法的一部分对表单控件所做的更改不被视为由用户引起的更改(例如,不会触发 input 事件)。
因此,通过重置操作对文本框中的 value 属性所做的更改并不符合 input 事件的触发条件。
终于介绍完啦!小伙伴们,这篇关于《为什么重置按钮点击后input元素的oninput事件不会触发? 》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布文章相关知识,快来关注吧!
相关阅读
更多>
-
502 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
最新阅读
更多>
-
325 收藏
-
405 收藏
-
413 收藏
-
293 收藏
-
356 收藏
-
119 收藏
-
182 收藏
-
288 收藏
-
120 收藏
-
392 收藏
-
321 收藏
-
2. CSS 样式使用 ::after 伪元素来在图片上叠加文字:
.im" class="aBlack">CSS图片上叠加文字的实现方法,主要通过使用伪元素(如 ::after)来在图片上方添加内容。以下是详细步骤和示例代码:1. HTML 结构假设你有一个包含图片的容器,结构如下:2. CSS 样式使用 ::after 伪元素来在图片上叠加文字: .im
318
收藏