input的type=file触发的相关事件

2023-11-17

今天突然用到input相关的事件,突然发现自己还没有总结过input相关事件的运行原理。而且我还竟然翻api去了解了,所以,为了记恨自己,就写了相关与input相关的事件运行的过程。添加了一些相关的方法测试了一下。这一节首先介绍一个input的type=file的运行流程。

我们书写了mousedown,mouseup,click,input,change,focus,blur绑定到了input上面,模拟点击选择了一个文件,触发事件的流程是下面这样的:

(1)mousedown
(2)focus
(3)mouseup
(4)click
(5)blur
(6)focus
(7)change

首先触发了鼠标按下事件,然后就是焦点到了input上面,然后鼠标抬起,触发click点击事件,失去焦点以后弹出了文件选择框,选中文件以后触发焦点,最后触发的change事件。


如果你没有选择文件的话,直接点击取消的话,就不会触发change事件。


所以说,如果要监听input 的type=file的内容变更事件的话,最好直接用change事件去监听。

附上案例代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<input type="file" id="input">
</body>
<script>
    document.getElementById("input").addEventListener("focus",function () {
        console.log("focus");
    });

    document.getElementById("input").addEventListener("mousedown",function () {
        console.log("mousedown");
    });

    document.getElementById("input").addEventListener("mouseup",function () {
        console.log("mouseup");
    });

    document.getElementById("input").addEventListener("input",function () {
        console.log("input");
    });

    document.getElementById("input").addEventListener("change",function () {
        console.log("change");
    });

    document.getElementById("input").addEventListener("blur",function () {
        console.log("blur");
    });

    document.getElementById("input").addEventListener("click",function () {
        console.log("click");
    });


</script>
</html>


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

input的type=file触发的相关事件 的相关文章

  • WebGL 实践篇(五)三维图形的绘制及矩阵变换、正射投影

    一 三维 F 的绘制 1 着色器 按照上一篇提到的矩阵变换 我们可以直接在顶点着色器中加入相应的矩阵变换 这样就可以简化着色器代码 通过变量传入矩阵的值也便于之后矩阵变换的修改 三维图形的绘制相比于二维图形只在参数类型上有一些变化 注意ve
  • 利用原生js实现随机颜色画布

    这几天复习了一下js的DOM 文档对象模型 部分 看到鼠标事件的时候想到可以试着写一个js画布的案例 一 实现思路 1 利用js绑定鼠标按下事件 鼠标放开事件 在通过鼠标移动事件 获取鼠标所在位置 2 通过鼠标移动事件动态创建节点挂载到页面
  • EduCoder_web实训作业--JavaScript学习手册七:JS循环语句

    第一关 Begin var sum 0 var i 2 while i lt a var j 2 while j lt i if i j 0 能被整除 不是质数 break 不需要再判断 j 除数加1 继续测试是不是质数 if j i 还是
  • 移动互联网终端的touch事件,touchstart, touchend, touchmove

    前言 如果我们允许用户在页面上用类似桌面浏览器鼠标手势的方式来控制WEB APP 这个页面上肯定是有很多可点击区域的 如果用户触摸到了那些可点击区域怎么办呢 诸如智能手机和平板电脑一类的移动设备通常会有一个电容式触摸屏 capacitive
  • 微信H5如何关闭浏览器(如何监听手机的物理返回键)

    一 背景 背景是这样的 该项目进入h5时会通过 location replace xxx 或 location href xxx 跳转到某个地址 该地址会请求获得微信 openId 获取成功后再重定向到h5首页 那么问题来了 重定向会在微信
  • JavaScript基础Day02:流程控制

    文章目录 1 顺序结构 2 分支结构 1 if语句 2 switch语句 3 循环结构 1 while语句 2 do while语句 3 for循环 1 顺序结构 2 分支结构 1 if语句 if 条件表达式 执行语句 if 条件表达式 成
  • HTML学习

    HTML 我的第一个网页 基本标签 图片标签 链接标签 列表 表格 媒体元素 页面结构分析 iframe内联框架 表单 我的第一个网页
  • HTML5游戏实战(2):90行代码实现捕鱼达人

    捕鱼达人是一款非常流行的游戏 几年里赚取了数以千万的收入 这里借用它来介绍一下用Gamebuilder CanTK开发游戏的方法 其实赚钱的游戏未必技术就很难 今天我们就仅用90来行代码来实现这个游戏 CanTK Canvas ToolKi
  • 58同城 -- 前端一面

    面我的是一个小哥哥 面试体验挺好的 大概进行了35分钟左右 自我介绍 面试内容 为什么向做前端 怎么学习的前端 本人非科班哈 然后问我项目 直接问项目 没问笔试令我有点意外 问我印象最深的项目 印象最深的功能 遇到的难点 前端存储的区别 C
  • html文本元素

    文章目录 h p span pre code 实体字符 strong i em del s h h head 标题 一共有六级标题 hKaTeX parse error Expected got EOF at end of input 6
  • angular:路径找不到时会跳回主页

    本地起服时 如果输入的路径无法匹配现有规则 则会跳转至主页 带来一定困扰 最好是统一显示或者导航至特定页面 以便debug const routes Routes path component PageNotFoundComponent
  • div标签的contenteditable属性实现input效果以及控制input的聚焦失焦

    在触屏 移动端网页 中 聊天室类型的输入框很常见 但是很多都是自定义样式的 直接改造input标签会很麻烦 给div标签设置contenteditable属性可以达到input标签的效果还能轻松的自定义样式 利用input事件和v text
  • HTML 5 标签、属性、事件及浏览器兼容性速查表

    HTML 5 可以说是近十年来 Web 标准最巨大的飞跃 和以前的版本不同 HTML 5 并非仅仅用来表示 Web 内容 它的使命是将 Web 带入一个成熟的应用平台 在这个平台上 视频 音频 图象 动画 以及同电脑的交互都被标准化 尽管
  • 通过点击按钮在页面添加图片

    点击添加按钮 在盒子中加入图片 点击图片实现删除图片效果 代码如下
  • HTML+CSS3 5个炫酷的loading

    为了方便大家方便CV 每个loading对应一个html文件 文件下载压缩包 下载地址 https download csdn net download m0 48850204 20432352 spm 1001 2014 3001 550
  • 表格嵌套与合并

  • BugkuCTF-WEB题文件上传

    启动场景 发现是文件上传 只能上传图像 不能上传PHP文件 那应该是寻找漏洞上传PHP文件 PHP文件里写入一句话木马 使用burp抓包 不断尝试发现发现需要修改的地方有三个 一个是http head里的Content Type multi
  • 【HTML】HTML5的拖放你用了吗

    HTML HTML5的拖放你用了吗 引言 github HTML HTML5的拖放你用了吗 内容速递 看了本文您能了解到的知识 在 HTML5 中 拖放是标准的一部分 任何元素都能够拖放 拖放的操作 多用在拖拽排序列表 游戏拼图等 下文中出
  • HTML5学习(三):布局标签、列表、超链接和id

    1 布局标签 header表示网页的头部 页眉 main表示网页的主体部分 一个页面中只会有一个main footer表示网页的底部 页脚 nav表示网页中的导航 aside和主体相关的其他内容 侧边栏 article表示一个独立的文章 s
  • 测试基础知识

    常见测试分类 按测试阶段划分 单元测试 针对程序源码进行测试 国内是开发自测 集成测试 又称接口测试 针对模块间的访问地址进行测试 系统测试 对整个系统进行测试 包括功能 兼容性 文档等 验收测试 分为内测和公测 按代码可见度划分 黑盒测试

随机推荐

  • XP 和 win10 系统 bios配制

    因搞嵌入式 家里有好多老式MCU 用到XP系统相关的编译器和相关的调试工具 专门买了台X230 配两个硬盘XP和win10 发现BIOS配置不一样 在这里记录一下 1 config 下面的 serial ATA 系统 serial ATA
  • 工作流选型

    对比 Activiti Flowable
  • 什么是护网(HVV)_需要什么技能?

    HVV介绍 1 什么是护网 护网的定义是以国家组织组织事业单位 国企单位 名企单位等开展攻防两方的网络安全演习 进攻方一个月内采取不限方式对防守方展开进攻 不管任何手段只要攻破防守方的网络并且留下标记即成功 直接冲到防守方的办公大楼 然后物
  • spring-boot 实现定时任务@Scheduled

    Scheduled 只适合处理简单的计划任务 不能处理分布式计划任务 优势 是spring框架提供的计划任务 开发简单 执行效率比较高 且在计划任务数量太多的时候 可能出现阻塞 崩溃 延迟启动等问题 启动类中加入 EnableSchedul
  • 【转载】Linux 之 makefile详细教程

    什么是makefile 或许很多Winodws的程序员都不知道这个东西 因为那些Windows的IDE都为你做了这个工作 但我觉得要作一个好的和 professional的程序员 makefile还是要懂 这就好像现在有这么多的HTML的编
  • docker run -it 和 docker exec -it具有什么功能呢?

    Docker Docker是一个开源的应用容器引擎 让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中 然后发布到任何流行的 Linux或Windows操作系统的机器上 也可以实现虚拟化 容器是完全使用沙箱机制 相互之间不会有任何接口
  • 有关联想拯救者Y7000重装window10系统

    文章目录 1 联想拯救者使用U盘重装系统不需要进入bios 2 总结 由于C盘爆满了 所以选择重装系统来重新给C盘分下区 给C盘分大点 然后重装系统的具体流程参照的是博客使用U盘重装Windows10系统详细步骤及配图 官方纯净版 然后写这
  • 03 什么是预训练(Transformer 前奏)

    博客配套视频链接 https space bilibili com 383551518 spm id from 333 1007 0 0 b 站直接看 配套 github 链接 https github com nickchen121 Pr
  • 20145334赵文豪《网络对抗》—— 网络欺诈技术防范

    1 实验后回答问题 1 通常在什么场景下容易受到DNS spoof攻击 局域网内的攻击 连接公共场所的wifi 2 在日常生活工作中如何防范以上两种攻击方法 输入个人信息前 仔细检查核对域名是否正确 使用入侵检测系统 使用防火墙进行保护 d
  • 关闭bat运行python时的chromedriver窗口

    运行python 查看三方库的安装位置 打开文件位置 默认conda在这里 找到selenium webdriver common service py 添加依赖 修改70行左右代码 self process subprocess Pope
  • 深度学习之心得——dropout

    作用 防止过拟合 什么时候过拟合 网络参数多 训练数据少的时候 容易过拟合 原理 前向传播过程中暂时屏蔽一些节点 暂时不更新它的参数 这样就可以训练多个不同的网络 降低过拟合的可能 Dropout层的位置 Dropout一般放在全连接层防止
  • python垃圾回收 (GC) 机制

    Python 能够自动进行内存分配和释放 但了解 python 垃圾回收 garbage collection GC 的工作原理可以帮助你写出更好更快的 Python 程序 Python 使用两种算法进行垃圾回收 分别是引用计数 Refer
  • 六、Kafka consumer及ConsumerRebalanceListener实现

    1 comsumer代码示例 public class ConsumerMessage private static final String TOPIC NAME topic 07 public static void main Stri
  • cJSON移植到STM32

    项目中用到JSON接收网络数据 具体是STM32串口接收JSON数据 提取需要的内容 本来KEIL MDK是自带JSON的 但是我不习惯使用KEIL自带的那些第三方的东西 很杂乱的感觉 cJSON的移植比较简单 一下子就可以搞定 1 下载源
  • spring boot 1.5.4 之监控Actuator(十四)

    上一篇 spring boot 1 5 4 整合 druid 十三 Spring Boot监控Actuator 项目 mybatis spring boot为例 源码地址 spring boot相关项目源码 码云地址 https git o
  • Spring 启动错误:ConfigServletWebServerApplicationContext

    报错提示 2023 02 14 14 28 07 198 INFO 15724 main com longyi ruiji RuiJiApplication Starting RuiJiApplication using Java 19 0
  • QT绘图:实现将没有布局的界面进行缩放显示

    QT绘图 实现将没有布局的界面进行缩放显示 前言 在实际开发过程中 会遇到一些无法使用布局的界面 如果将这样的界面直接放入另一个界面 大小不合适就会出现页面太丑的情况 而解决的方法可以是重构界面 但是一些界面过于复杂 重构很难实现 那么笔者
  • 用MATLAB对图像进行采样处理

    用MATLAB对图像进行采样处理 一 实验目的 掌握图像采样原理 二 实验内容 试对512x512的lenagray jpg图像分别采样为256x256 128x128 64x64的图像 观察图像质量的变化 第一幅图是原图 第二幅是不同采样
  • linux下手动安装git教程

    Git是一个开源的分布式版本控制系统 可以有效 高速的处理从很小到非常大的项目版本管理 而国外的GitHub和国内的Coding都是项目的托管平台 但是在使用git工具的时候 第一步要学会如何安装git 本教程就手把手教大家如何手动编译安装
  • input的type=file触发的相关事件

    今天突然用到input相关的事件 突然发现自己还没有总结过input相关事件的运行原理 而且我还竟然翻api去了解了 所以 为了记恨自己 就写了相关与input相关的事件运行的过程 添加了一些相关的方法测试了一下 这一节首先介绍一个inpu