首页 > 其他分享 >input的onblur和onchange事件区别是什么?

input的onblur和onchange事件区别是什么?

时间:2024-11-26 11:15:11浏览次数:3  
标签:触发 onblur 焦点 失去 事件 input onchange

onbluronchange 都是 HTML 元素的事件属性,用于处理用户与表单元素交互时的不同情况。它们的主要区别在于触发时机和触发条件:

  • onblur (失去焦点): 当一个元素失去焦点时触发。这意味着当用户点击页面上其他元素、按下 Tab 键切换到下一个元素或使用鼠标点击到其他地方时,都会触发 onblur 事件。 它不关心元素的值是否改变,只关心焦点是否离开。

  • onchange (值改变): 当一个元素的值发生改变,并且失去焦点时触发。这意味着用户必须修改元素的值,然后将焦点转移到其他地方,才会触发 onchange 事件。单纯修改值而不失去焦点不会触发该事件。

总结:

特性 onblur onchange
触发时机 失去焦点 值改变并且失去焦点
值改变必要性 不需要 需要
例子 输入框失去焦点,下拉框选择后失去焦点 输入框内容修改后失去焦点,下拉框选择后失去焦点

常见场景和示例:

  • onblur:

    • 表单验证:当用户离开输入框时,可以使用 onblur 事件立即验证输入内容的格式是否正确。
    • 自动保存:当用户离开一个文本区域时,可以使用 onblur 事件自动保存用户输入的内容。
    • 显示提示信息:当用户离开一个输入框时,可以使用 onblur 事件隐藏相关的提示信息。
  • onchange:

    • 动态更新:当用户选择不同的选项时,可以使用 onchange 事件动态更新页面上的其他内容。例如,选择不同的省份后,自动更新城市列表。
    • 数据计算:当用户修改数值输入框的值时,可以使用 onchange 事件重新计算结果。
    • 提交表单:当用户修改表单中的任何值后,可以使用 onchange 事件启用提交按钮。

需要注意的点:

  • 对于文本框 <input type="text">、文本域 <textarea> 等元素,onchange 事件在内容改变且失去焦点时触发。
  • 对于单选框 <input type="radio"> 和复选框 <input type="checkbox">onchange 事件在选中状态改变时立即触发,无需失去焦点。
  • 对于下拉框 <select>onchange 事件在选项改变时立即触发,无需失去焦点。

总而言之,onblur 更加关注焦点状态的变化,而 onchange 更加关注值的变化。选择哪个事件取决于你的具体需求。如果只需要在焦点离开时执行某些操作,则使用 onblur;如果需要在值改变后执行某些操作,则使用 onchange

标签:触发,onblur,焦点,失去,事件,input,onchange
From: https://www.cnblogs.com/ai888/p/18569737

相关文章

  • AntDesign树形组件tree和输入input组件融合使用
    <a-tree :tree-data="selectItem.options.options" :replace-fields="{ children:'children', title:'label', code:'code' }" >......
  • InputTip:输入法状态提示工具,让你的输入更高效
    InputTip是一个输入法状态(中文/英文/大写锁定)提示工具,免费开源,基于AutoHotKey开发。‍介绍​官网:https://inputtip.pages.dev开源在GitHub:https://github.com/abgox/InputTip和Gitee:https://gitee.com/abgox/InputTip特点:根据输入法状态(中文/英文/大写锁定),显示不同......
  • nohup nohup: ignoring input
    nohup是一个Unix和Linux命令,用于运行关闭时不会被终止的进程(即"不挂起"的进程)。当你看到nohup:ignoringinput这个错误时,通常意味着你尝试使用nohup去运行一个需要交互式输入的命令【不是这个原因】。nohup默认情况下会忽略任何输入,并将标准输入重定向到/dev/null。......
  • elementUI 的 input无法输入bug解决
    1、出现bug的原因    是因为数据层虽然改变了,但是并没有引起视图层的变化2、解决方案@input="forceUpdate($event)"//在input框上加输入事件forceUpdate(e){this.$forceUpdate()强制刷新}jeecg-boot框架前端写了个筛选组件:SearchBox.vue,测试人员发现输......
  • 《生化危机4重制版》黑屏进游戏慢,dinput8.dll缺失如何解决?
    针对《生化危机4重制版》中出现的黑屏、进游戏慢以及dinput8.dll文件缺失的问题,可以采取以下步骤进行解决:一、解决dinput8.dll缺失问题dinput8.dll是DirectX组件之一,用于处理输入设备如键盘、鼠标等。如果这个文件丢失或损坏,游戏可能无法正常启动。以下是几种解决方法:重新......
  • Hadoop(十七)MapReduce 切片机制 InputFormat
    切片与MapTask并行度决定机制MapTask的并行度决定Map阶段的任务处理并发度,进而影响到整个Job的处理速度数据块:Block是HDFS物理上把数据分成一块一块,数据块是HDFS存储数据单位数据切片:数据切片只是在逻辑上对输入进行分片,并不会在磁盘上将其切分成片进行存储,数据切片是MapReduc......
  • 驱动(RK3588S)第十二课时:输入子系统(input)
    目录学习目标一、输入子系统1、输入子系统的概念2、输入子系统的框架3、输入子系统节点在Linux操作系统中的位置4、让事件同步的目的二、输入子系统相关API函数1、注册输入设备2、定义的核心结构体3、注销申请的输入设备的资源4、上报事件到应用层5、上报同步事件6、......
  • 网站打开提示:”No input file specifed.“
    当你的网站打开时提示“Noinputfilespecified.”,这通常意味着PHP解析器无法找到要解析的文件。这种错误通常发生在以下几个方面:文件路径错误:文件路径不正确或不存在。文件权限问题:文件或目录权限设置不当。Web服务器配置问题:Web服务器配置错误或缺失必要的配置。PHP配置问......
  • inputTranslator 输入翻译小助手
    inputTranslator输入翻译小助手输入翻译助手,你只需要触发热键(例如大键盘右侧的Ctrl),即可轻松编辑框中内容翻译成指定语言。节省你跨软件操作的时间。和异国友人轻松对话。❓解决什么问题?我需要一款输入后翻译的小助手,在聊天中方便我快速翻译回复,不想跨软件操作。但是,目前网上没有一......
  • 单选和多选在table里的报错问题Blocked aria-hidden on a <input> element because the
    单选在main.js里//table单选报错问题Vue.directive('removeAriaHidden',{bind(el,binding){constariaEls=el.querySelectorAll('.el-radio__original')ariaEls.forEach((item)=>{item.removeAttribute('aria-hidden')......