input框focus,blur,change,input,keyup,keydown发生的顺序

  <div id="app">
    <input type="text" id="txt"/>
    <p id="show"></p>
  </div>
  <script >
    let result = []
    txt.addEventListener('keyup',function (event){
      result.push({
        event:'keyup',
        value:this.value,
        code:event.keyCode,
        eventThis:this
      })
      console.log(result)
    })
    txt.addEventListener('keydown',function (event){
      result.push({
        event:'keydown',
        value:this.value,
        code:event.keyCode,
        eventThis:this
      })
      console.log(result)
    })
    txt.addEventListener('input',function (event){
      result.push({
        event:'input',
        value:this.value,
        code:event.keyCode,
        eventThis:this
      })
      console.log(result)
    })
    txt.addEventListener('change',function (event){
      result.push({
        event:'change',
        value:this.value,
        code:event.keyCode,
        eventThis:this
      })
      console.log(result)
    })
    txt.addEventListener('focus',function (event){
      result.push({
        event:'focus',
        value:this.value,
        code:event.keyCode,
        eventThis:this
      })
      console.log(result)
    })
    txt.addEventListener('blur',function (event){
      result.push({
        event:'blur',
        value:this.value,
        code:event.keyCode,
        eventThis:this
      })
      console.log(result)
    })

输出结果如下:


Screenshot from 2019-02-22 11-14-33.png

从图中可以看出如下结论:

  1. keydown事件发生时,输入值并没有发生变化,所以keydown可用于阻止某些输入字符的显示。

  2. input事件发生时,无法获取到keyCode值,并且紧随在keydown事件之后。

  3. keyup事件最后发生,一次键盘敲入事件彻底完成。

  4. change事件只会发生在输入完成后,也就是输入框失去焦点之前。

  5. 输入完成后观察
    当用户完成所有的输入时,这时候必定会发生blur事件,只有这时才会触发change,所以可用blur与change监听用户输入是否完成,输入框的验证多半发生在此时。

  6. 输入事件流
    输入框发生的事件流程依次为focus、keydown、input、keyup、change与blur,见下图所示。

inputImg.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 8,907评论 1 11
  • 本篇博客源地址 总结: 鼠标事件 1.click与dbclick事件ele.click()ele.click(ha...
    ZombieBrandg阅读 3,957评论 0 1
  • 总结: 鼠标事件 1.click与dbclick事件$ele.click()$ele.click(handler(...
    阿r阿r阅读 5,560评论 2 10
  • (续jQuery基础(1)) 第5章 DOM节点的复制与替换 (1)DOM拷贝clone() 克隆节点是DOM的常...
    凛0_0阅读 5,265评论 0 8
  • 第1章 鼠标事件 1-1 jQuery鼠标事件之click与dbclick事件 用交互操作中,最简单直接的操作就是...
    mo默22阅读 5,062评论 0 6

友情链接更多精彩内容