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


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

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

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

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

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

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

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

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

    1. <input type="text" oninput="handleInput(event)" onchange="handleChange(event)">
    2. <div id="result">输入的值:div>
    3. <script>
    4. function handleInput(event) {
    5. document.getElementById('result').textContent = '输入的值:' + event.target.value;
    6. }
    7. function handleChange(event) {
    8. document.getElementById('result').textContent = '输入的值:' + event.target.value;
    9. }
    10. script>

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

    使用场景:

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

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

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

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

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

  • 相关阅读:
    java毕业设计企业员工业绩考核系统mybatis+源码+调试部署+系统+数据库+lw
    DevOps的流程与规范介绍
    [MAUI 项目实战] 手势控制音乐播放器(四):圆形进度条
    IIC控制器(2):PS端
    前端网页项目-学成在线案例
    C#实现检测打印机状态(包括打印机是否缺纸、打印队列任务数)
    【LeetCode】1838. 最高频元素的频数
    深入在线文档系统的 MarkDown/Word/PDF 导出能力设计
    技术管理进阶——扎心了!老板问我:你们技术部和外包团队有什么区别?
    【神经网络】一文带你轻松解析神经网络(附实例恶搞女友)
  • 原文地址:https://blog.csdn.net/m0_74265396/article/details/134000210