为什么重置按钮点击后input元素的oninput事件不会触发?
2025-02-26 16:45:01
0浏览
收藏
本文探讨了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学习网公众号也会发布文章相关知识,快来关注吧!
机构:2024年欧洲智能手机市场四连跌后“转正”,小米以16%份额居第三
- 上一篇
- 机构:2024年欧洲智能手机市场四连跌后“转正”,小米以16%份额居第三
- 下一篇
- 如何用PHP向数据库中已有的JSON数组添加新记录?
查看更多
最新文章
-
- 文章 · 前端 | 4分钟前 |
- LinuxHelix加速技巧与重构指南
- 182浏览 收藏
-
- 文章 · 前端 | 5分钟前 | 顶层await
- 顶层await用法详解与实战技巧
- 288浏览 收藏
-
- 文章 · 前端 | 6分钟前 |
- 表单数据保留与自动清理技巧
- 120浏览 收藏
-
- 文章 · 前端 | 23分钟前 |
- EventLoop机制解析与执行顺序控制技巧
- 392浏览 收藏
-
- 文章 · 前端 | 24分钟前 |
- Tailwind任意值类解决方法详解
- 321浏览 收藏
-
2. CSS 样式使用 ::after 伪元素来在图片上叠加文字:
.im">

