oninput 和 onchange 事件有什么区别

简介: oninput 和 onchange 事件有什么区别

oninput 和 onchange 是 HTML DOM 中的两种事件,它们通常用于监听输入元素(如 <input>, <textarea>, <select> 等)的值的变化。虽然它们都用于处理输入元素的值的变化,但它们的工作方式和触发时机有所不同。


oninput 事件

oninput 事件在用户输入时触发,即每当元素的值发生变化时,无论这种变化是由于键盘输入、粘贴、拖拽等操作引起的,都会触发 oninput 事件。这意味着,只要元素的值发生了改变,就会立即触发该事件,无需等待用户完成输入或离开输入框。


例如,以下是一个使用 oninput 事件的示例:

html<input type="text" id="myInput" oninput="myFunction()">
 
<script>
function myFunction() {
var x = document.getElementById("myInput").value;
console.log("Input value: " + x);
}
</script>

在这个例子中,每当用户在输入框中输入字符时,myFunction 函数就会被调用,并将输入框中的值打印到控制台。


onchange 事件

onchange 事件则不同,它只在元素的值发生改变并且元素失去焦点(即用户完成输入并离开输入框)时触发。这意味着,如果用户开始在输入框中输入内容,然后中断输入并离开输入框(例如,通过点击输入框外的其他位置或按 Tab 键),onchange 事件才会触发。


以下是一个使用 onchange 事件的示例:

html<input type="text" id="myInput" onchange="myFunction()">
 
<script>
function myFunction() {
var x = document.getElementById("myInput").value;
console.log("Input value: " + x);
}
</script>

在这个例子中,只有当用户在输入框中输入内容并离开输入框时(例如,通过点击其他位置或按 Tab 键),myFunction 函数才会被调用,并将输入框中的值打印到控制台。


总结

总的来说,oninput 和 onchange 事件的主要区别在于触发时机:


oninput 事件在用户输入时触发,无论是否完成输入。

onchange 事件在元素的值发生改变并且元素失去焦点时触发,即用户完成输入后触发。

选择使用哪个事件取决于你的具体需求。如果你需要在用户输入时实时获取和处理值,可以使用 oninput 事件。如果你只需要在用户完成输入后获取和处理值,可以使用 onchange 事件。

相关文章
|
自然语言处理 前端开发 Java
JBoltAI 框架完整实操案例 在 Java 生态中快速构建大模型应用全流程实战指南
本案例基于JBoltAI框架,展示如何快速构建Java生态中的大模型应用——智能客服系统。系统面向电商平台,具备自动回答常见问题、意图识别、多轮对话理解及复杂问题转接人工等功能。采用Spring Boot+JBoltAI架构,集成向量数据库与大模型(如文心一言或通义千问)。内容涵盖需求分析、环境搭建、代码实现(知识库管理、核心服务、REST API)、前端界面开发及部署测试全流程,助你高效掌握大模型应用开发。
1241 5
|
6月前
|
人工智能 图形学 iOS开发
CorelDRAW Graphics Suite 2026 v27.0 (macOS, Windows) 发布 - 矢量图形设计软件
CorelDRAW Graphics Suite 2026 v27.0 (macOS, Windows) 发布 - 矢量图形设计软件
3972 5
CorelDRAW Graphics Suite 2026 v27.0 (macOS, Windows) 发布 - 矢量图形设计软件
|
11月前
netlify信用额度急剧消耗,300免费信用分到底谁占用了?
作者使用Netlify托管Publii生成的静态网站,原以为仅GitHub同步耗积分,结果频繁更新导致300积分快速消耗。发现每次部署竟扣15分,数日即用掉75%额度,方知高频更新不现实,访问量大时更受限,服务模式不适合持续更新的站点。
1464 1
|
机器学习/深度学习 数据采集 算法
深度学习之路径优化与车辆调度
基于深度学习的路径优化与车辆调度技术在交通管理、物流配送、公共交通、共享出行等领域具有重要应用价值。这些技术利用深度学习模型处理复杂的交通数据、实时信息以及用户需求,旨在提高运输效率、降低成本、减少拥堵并提升服务质量。
974 0
|
Java 测试技术 开发者
🌟Java 零基础 | 深入理解三目运算符
【10月更文挑战第13天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
1633 3
|
监控 数据安全/隐私保护 Android开发
用最简单的方法下载微信视频号中的视频:微信视频号下载工具!
用最简单的方法下载微信视频号中的视频:微信视频号下载工具!
用最简单的方法下载微信视频号中的视频:微信视频号下载工具!
|
自然语言处理 负载均衡 API
gRPC 一种现代、开源、高性能的远程过程调用 (RPC) 可以在任何地方运行的框架
gRPC 是一种现代开源高性能远程过程调用(RPC)框架,支持多种编程语言,可在任何环境中运行。它通过高效的连接方式,支持负载平衡、跟踪、健康检查和身份验证,适用于微服务架构、移动设备和浏览器客户端连接后端服务等场景。gRPC 使用 Protocol Buffers 作为接口定义语言,支持四种服务方法:一元 RPC、服务器流式处理、客户端流式处理和双向流式处理。
|
敏捷开发 监控 Devops
探索自动化测试的利剑:持续集成与持续部署(CI/CD)在软件测试中的应用
在软件开发的快速迭代中,传统的手动测试方法已经无法满足效率和质量的双重需求。本文将深入探讨如何通过实施持续集成(CI)和持续部署(CD)来优化自动化测试流程,提升软件交付速度及质量保证水平。我们将分析CI/CD在测试中的关键作用,并通过实际案例数据展示其对提高测试覆盖率、缩短反馈周期和增强开发协作的积极影响。
698 27
|
域名解析 缓存 运维
【域名解析DNS专栏】域名解析故障排查手册:常见问题与解决方案
【5月更文挑战第22天】【DNS故障排查手册】解决域名无法解析、速度慢、污染劫持及配置错误问题。检查网络、清理缓存、更换DNS服务器、使用HTTPS、DNSSEC及CDN。示例:使用nslookup查询域名解析。定期检查优化DNS服务器,确保稳定安全。
6812 4
【域名解析DNS专栏】域名解析故障排查手册:常见问题与解决方案