oninput和onchange事件有什么区别以及使用场景

news/2025/2/21 13:24:54/

oninput和onchange都是常见的表单元素的事件,它们的区别在于触发的时机不同。

oninput事件会在表单元素的值发生变化时立刻触发,无论是通过键盘输入、粘贴、剪切、拖拽等方式,都能实时响应。比如:

<input type="text" oninput="handleInput(event)">

其中,handleInput函数会接收一个event参数,可以通过该参数获取当前输入框的值,实时更新页面等操作。

而onchange事件则是在表单元素的值发生变化并且元素失去焦点时触发。比如:

<input type="text" onchange="handleChange(event)">

使用onchange事件时,需要注意的是,在用户输入完成之前,如果用户点击其他元素或按下了回车键,输入框的值将被提交,同时onchange事件也会被触发,这可能导致一些意想不到的结果。

下面是一个简单的示例,演示oninput和onchange事件的区别:

<input type="text" oninput="handleInput(event)" onchange="handleChange(event)">
<div id="result">输入的值:</div>
<script>function handleInput(event) {document.getElementById('result').textContent = '输入的值:' + event.target.value;}function handleChange(event) {document.getElementById('result').textContent = '输入的值:' + event.target.value;}
</script>

运行结果:无论是在输入框中键入文本、复制粘贴或者直接拖拽文件,oninput事件都能实时响应,而onchange事件只有在输入框失去焦点时才会触发。

使用场景:

oninput事件主要用于实时监控表单元素的输入,特别是一些需要动态展示输入内容的场景,比如:

  • 实时搜索框:随着用户输入的关键词,及时展示搜索结果;
  • 实时计算器:根据用户输入的数字或运算符,实时计算出结果;
  • 动态表单验证:当用户输入框中的内容变化时,及时验证内容的正确性。

而onchange事件则适用于需要在表单元素失去焦点时进行处理的场景,比如:

  • 表单提交:当用户输入数据完成,需要提交数据到后台处理时;
  • 筛选控件:当用户点击筛选条件时,需要在所有条件都选择完成后进行查询操作;
  • 商品加入购物车:当用户输入商品数量、选择商品规格等信息后,需要将商品加入购物车。

需要注意的是,当表单元素的值发生变化时,并不一定需要立刻响应,在具体场景中需要根据实际需求来选择使用oninput还是onchange。


http://www.ppmy.cn/news/1172102.html

相关文章

IPD集成产品开发TR技术评审详解

IPD&#xff08;Integrated Product Development&#xff09;集成产品开发是一种跨部门协同的、利用先进技术和管理方法来快速推出新产品并满足客户需求的开发模式。华为利用IPD也非常出名。在IPD集成产品开发的过程中&#xff0c;TR&#xff08;Technical Review&#xff09;技…

RHCE---Shell基础 2

文章目录 目录 文章目录 前言 一.变量 概述 定义 自定义变量 环境变量 概述&#xff1a; 定义环境变量&#xff1a; 位置变量 "$*"会把所有位置参数当成一个整体&#xff08;或者说当成一个单词 变量的赋值和作用域 read 命令 变量和引号 变量的作用域 变…

Amazon图片下载器:利用Scrapy库完成图像下载任务

概述 本文介绍了如何使用Python的Scrapy库编写一个简单的爬虫程序&#xff0c;实现从Amazon网站下载商品图片的功能。Scrapy是一个强大的爬虫框架&#xff0c;提供了许多方便的特性&#xff0c;如选择器、管道、中间件、代理等。本文将重点介绍如何使用Scrapy的图片管道和代理…

无约束优化算法

第六章 无约束优化算法 本章考虑如下无约束优化问题 min ⁡ x ∈ R n f ( x ) (6.0.1) \min_{x{\in}R^n}f(x)\tag{6.0.1} x∈Rnmin​f(x)(6.0.1) 其中 f ( x ) f(x) f(x)是 R n → R R^n{\rightarrow}R Rn→R的函数&#xff0c;无约束优化问题是众多优化问题中最基本的问题&a…

【JavaEE】线程安全的集合类 -- 多线程篇(9)

线程安全的集合类 多线程环境使用 ArrayList多线程环境使用队列多线程环境使用哈希表 多线程环境使用 ArrayList 自己使用同步机制 (synchronized 或者 ReentrantLock)Collections.synchronizedList(new ArrayList); synchronizedList 是标准库提供的一个基于 synchronized 进…

ES1:index、type、document、mapping之间的关系

1.1 引言 由于长期使用es&#xff0c;但是对于es的大体结构存在疑惑&#xff0c;于是在此做一个大致总结。 1.2 数据存储结构 在 7.0版本之前&#xff0c;es的数据结构如下&#xff1a; 提示&#xff1a; 通过上图可知&#xff0c;在7.0之前elasticsearch的结构层级是&#…

[Python进阶] 目录相关库:os、pathlib、shutil

6.11 目录相关&#xff1a;os、pathlib、shutil 6.11.1 遍历目录(包含子目录) from icecream import ic import osp1 rG:\TCL for _ in os.walk(p1):ic(_)# 获取目录中所有文件名 files [] for dirpath, dirnames, filenames in os.walk(p1):files.extend(os.path.join(dir…

项目十一文件的应用

认识文件 概述 文件对大家来说很熟悉,常见的有txt文本文档,办公用的word文档等,主要作用就是保存数据 在C语言中,文件时计算机领域的一个重要概念,通常指存储在外部介质上数据的集合。操作系统以文件为单位对数据进行管理,以文件名访问文件。 分类 按文件内容划分源…