html 输入框输入事件,input输入框事件「建议收藏」

html 输入框输入事件,input输入框事件「建议收藏」onfocus->键盘输入->onkeydown->onkeypress->onkeyup->oninput->失去焦点->onchange->onblur如下,奉上代码;functionhandleFocus(event){console.log(‘onfocus事件’,’value=’+event.targ…

大家好,又见面了,我是你们的朋友全栈君。

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)

}

执行结果:

4517117abd8e

其实这个过程并没有很意外,唯一感觉不太对劲的是 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;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/140842.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • java javah_Javah 常见错误记录

    java javah_Javah 常见错误记录测试文件:hello-jni/src/com/example/hellojni/HelloJni.java/***该文件来自AndroidNDKSample-HelloJni,为了便于说明问题,我作了一些修改。*/packagecom.example.hellojni;publicclassHelloJni{publicnativeStringstringFromJNI…

    2022年11月2日
  • c语言中u8,u16,u32和int区别[通俗易懂]

    c语言中u8,u16,u32和int区别[通俗易懂]c语言中u8,u16,u32和int区别为符号不同、数据范围不同、内存占用的空间不同。一、符号不同1、u8:u8表示无符1653号char字符类型。2、u16:u16表示无符号short短整数类型。3、u32:u32表示无符号int基本整数类型。4、int:int表示带符号int基本整数类型。二、数据范围不同1、u8:u8的数据范围为0~+127[0~2^8-1]。2、u16:u16的数据范围为0~+65535[0~2^16-1]。3、u32:u32的数据范围为0+2147483647[0

    2022年10月15日
  • 大学《数据库系统》课程设计报告「建议收藏」

    大学《数据库系统》课程设计报告「建议收藏」湖南科技大学计算机科学与工程学院《数据库系统》课程设计题目:教学管理系统专业:计算机科学与技术年级:2017级班级:计科三班学号:170510323姓名:雨萱完成时间:2019年1月3日教务管理系统的分析与实现一.实验目的数据库系统课程设计是为了配合数据库原理及应用开发而…

    2022年5月12日
  • c#savefiledialog默认文件名_save用法词组

    c#savefiledialog默认文件名_save用法词组#region 保存对话框   private void SaveFileDialog()  {      //string localFilePath, fileNameExt, newFileName, FilePath;       SaveFileDialog saveFileDialog1 = new SaveFileDialog();       

    2022年10月8日
  • 关于 IPv6 你需要知道的 10 件事

    关于 IPv6 你需要知道的 10 件事

    2021年8月8日
  • jdbc连接mysql数据库url_jdbc连接sql server数据库

    jdbc连接mysql数据库url_jdbc连接sql server数据库JDBC连接MYSQL数据库JDBC连接MYSQL数据库JDBC连接MYSQL数据库JDBC连接MYSQL数据库JDBC连接MYSQL数据库

    2022年9月9日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号