从input框获取焦点到,输入值,失去焦点这个过程所有事件,以及一些特点;

1、过程

  onfocus -> 键盘输入 -> onkeydown -> onkeypress -> onkeyup -> oninput -> 失去焦点 ->  onchange -> onblur

  如下,奉上代码;

function handleFocus (event) {
console.log('onfocus事件', 'value=' + event.target.value, 'keyCode=' + event.keyCode);
}; function handleKeyDown (event) {
console.log('onkeydown事件', 'value=' + event.target.value, 'keyCode=' + event.keyCode);
} function handleKeyPress (event) {
console.log('onkeypree事件', 'value=' + event.target.value, 'keyCode=' + event.keyCode);
} function handleKeyUp (event) {
console.log('onkeyup事件', 'value=' + event.target.value, 'keyCode=' + event.keyCode);
} function handleInput (event) {
console.log('oninput事件', 'value=' + event.target.value, 'keyCode=' + event.keyCode);
} function handleChange (event) {
console.log('onchange事件...', 'value=' + event.target.value, 'keyCode=' + event.keyCode);
}; function handleBlur (event) {
console.log('onblue事件', 'value=' + event.target.value, 'keyCode=' + event.keyCode)
}

  执行结果:

  

  其实这个过程并没有很意外,唯一感觉不太对劲的是 onchange 事件并不是每次输入框值改变的时候触发的,而是在失去焦点时候,并且在 onblur 之前触发;

2、说说这些事件

  onfocus

    并没有什么特别的,就是当焦点转移到(点击,tab切换) input 框上边的时候触发;

  onkeydown

    键盘按下的时候触发,但是此时按下的值并没有被输入到 input ,所以,此时的 value 没有值,或者说它的值 只能是之前的旧值

      另外,此时可以阻止按键的默认事件;

   onkeypress

    按键在按下之后,并且是按键松开之前触发的;

      和 keydown 一样不能获取新的到 value;此时,也可以阻止按键的默认事件;

      但是这个事件对一下按键的支持不好,一些非输入性质的按键(如;delete, backspare)不支持;(除enter);

  oninput

    这个事件很贼,它的触发时机,从上面就可以看到,onpress 之后 onkeyup 之前;

      此时,已经可以拿到 value,不能拿到keycode,不可以阻止默认事件了 ;

      关键是这货明明是每次输入框的值变化时候出发的,抢了onchange 的饭碗;

      另外,这东西是新的,IE9以下不支持,需要使用 onpropertychange;

      还有这货,仅仅在input, textarea 支持;

  onkeyup

      按键在松开之后触发的;

     能获取新的到 value,keycode;此时,不可以阻止按键的默认事件;

  onchange

      你敢说这是你认识的onchange吗?反正我是不敢;在失去焦点之后触发的,明明是 onchange 为什么是在失去焦点后触发的,还偏偏比 onblur 快;

     能获取新的到 value,不能拿到 keycode;此时,不可以阻止按键的默认事件;

  onblur

      失去焦点时候触发,但是还是比 onchange 慢了;

     能获取新的到 value,不能拿到 keycode;

说说 input 输入框的事件的更多相关文章

  1. input 输入框 change 事件和 blur 事件

    输入框的 change 和 blur  事件绝大多数情况下表现是一致的,输入结束后离开输入框会先后触发 change 和 blur.那么这两个事件的区别在哪呢? 当文本框获得焦点后,没有输入任何内容, ...

  2. input输入框回车事件响应

    1.常用方法 1.方法1$('#applyCertNum').bind('keypress',function(event){ if(event.keyCode == 13) { alert('你输入 ...

  3. element-ui input输入框回车事件

    <el-input maxlength="30" v-model="answerInput" @keyup.enter.native="addA ...

  4. input输入框校验

    1.只能输入数字,当输入不符字符删除,光标位置不变 //只能输入数字 function onlyNumTrue(obj){ var reg = /[^\d]/g; var pos = obj.sele ...

  5. oninput、onchange与onpropertychange事件的区别, 与input输入框实时检测

    这几天项目着急,同时也学到好多以前没有接触过的知识.oninput.onchange与onpropertychange事件的区别, 与input输入框实时检测 onchange事件只在键盘或者鼠标操作 ...

  6. input输入框file类型第二次不触发onchange事件的解决办法,简单有效

    在网上看了很多办法,现在将网上大部分说法总结如下: 网上说法: 原因:选择一次后onchange事件没有绑定到input标签上:    解决办法:拷贝一份input标签的副本,每次选择后对原input ...

  7. input输入框的的input事件和change事件以及change和blur事件的区别

    input输入框的 oninput事件 ,在用户输入的时候触发,只要元素值发生变化就会触发 input输入框的 onchange事件 ,要在输入框失去焦点的时候触发事件,当鼠标在其他地方点击一下才会触 ...

  8. input输入框的input事件和change事件

    input输入框的onchange事件,要在 input 失去焦点的时候才会触发: 在输入框内容变化的时候不会触发change,当鼠标在其他地方点一下才会触发: onchange 事件也可用于单选框与 ...

  9. 实现bootstrap布局的input输入框中的图标点击功能

    使用bootstrap布局可以在input的输入框中添加譬如登录名输入框中的一键清除图标和密码输入框中显示密码的小眼睛图标.如下图: 但是在将图标放入input输入框中,这些小图标是无法获得点击事件的 ...

随机推荐

  1. java面试题,附个人理解答案

    一,面向对象的特征:1.抽象 包括数据抽象跟行为抽象,将对象共同的特征取出形成一个类2.继承 被继承类为基类/超类,继承类为子类/派生类3.封装 多次使用道德数据或方法,封装成类,方便多次重复调用4. ...

  2. unity零基础开始学习做游戏(五)看看你的完成度,进度条了解一下?

    -------小基原创,转载请给我一个面子 上回书说道,英雄和魔王都做完了,子弹也能发射了,就是不知道啥时候能干死魔王.那小基得做个血条来展示一下,他离死不远了(•౪• ) 其实血条也可以看作是进度条 ...

  3. java--接口的定义与实现

    利用接口方法计算矩形面积 代码如下: //接口的定义与实现[public] interface A{ //定义一个接口[public] [static][final] void conter(doub ...

  4. Angular4.x通过路由守卫进行路由重定向,实现根据条件跳转到相应的页面

    需求: 最近在做一个网上商城的项目,技术用的是Angular4.x.有一个很常见的需求是:用户在点击"我的"按钮时读取cookie,如果有数据,则跳转到个人信息页面,否则跳转到注册 ...

  5. 如何优雅的关闭Java线程池

    面试中经常会问到,创建一个线程池需要哪些参数啊,线程池的工作原理啊,却很少会问到线程池如何安全关闭的. 也正是因为大家不是很关注这块,即便是工作三四年的人,也会有因为线程池关闭不合理,导致应用无法正常 ...

  6. CSS样式渐变代码,兼容IE8

    background: -webkit-linear-gradient(top,#ffffff,#f5f5f5); background: -moz-linear-gradient(top,#ffff ...

  7. Taurus.MVC 支持Asp.Net Core 的过程

    前言: 这些天,似乎.NET Core相关的新闻和文章经常在我眼前晃~~~ 昨天,微软又发布了.Core 2.1,又愰了一下,差点没亮瞎我的眼睛. 好吧,大概是上天给我的暗示,毕竟 CYQ.Data  ...

  8. Beta 冲刺day 6

    1.昨天的困难,今天解决的进度,以及明天要做的事情 昨天的困难:在导入导出方面遇到了困难,导出的文件不能直接导入. 今天解决的进度:完成了登录页面的背景设计,并再次测试了整个系统的功能. 明天要做的事 ...

  9. 利用arcserver 自带tomcat实现上传shapefile、cad等文件,然后用soe解析。

    一.功能实现分析 1.soe中传入指定路径目录和文件名就能读取shp.cad并解析,然后返回JSON格式数据给flex端生成图形.(soe读取的是本地绝对路径) 2.所以首先要上传文件到soe发布所在 ...

  10. ArcCore重构-头文件引用问题的初步解决

    基于官方arc-stable-9c57d86f66be,AUTOSAR版本3.1.5   基本问题 1. 头文件引用混乱,所有头文件通过从搜索路径(-I)中引用,存在名称污染问题,需加入路径信息:   ...