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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • bs架构与cs架构的区别详细讲解_数据库为什么cs架构

    bs架构与cs架构的区别详细讲解_数据库为什么cs架构C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。早期的软件系统多以此作为首选设计标准。 B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户

    2025年6月24日
    1
  • cxf框架调用webservice_webservice json

    cxf框架调用webservice_webservice json本文主要包括以下内容ant工具的使用利用cxf实现webservicecxf与spring整合ajax访问webserviceant工具1、为什么要用到ant这个工具呢?Ant做为一种工具已经广泛被使用,并且历史悠久。使用ant的内置命令,可以编译java源文件(javac),运行java文件(java),给class文件打包(jar、war、ear),也可以创建(mkdir)、删除…

    2022年9月15日
    0
  • Java –如何打印数组

    Java –如何打印数组在本文中,我们将向您展示几种打印Java数组的方法。1.Arrays.toString这是打印数组的最简单方法–Arrays.toString(自JDK1.5起)PrintArray.javapackagecom.mkyong.utils.print;importjava.util.Arrays;publicclassPrintArray{…

    2022年5月27日
    45
  • navicat premium 激活码【永久激活】[通俗易懂]

    (navicat premium 激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~MLZP…

    2022年3月21日
    574
  • Java课程设计—中国象棋(源代码及视频)「建议收藏」

    谢谢大家的支持,您的一键三连是罡罡同学前进的最大动力!一键三连一键三连一键三连一键三连一键三连一键三连传送地址数据结构课程设计——校园导游系统(C语言):B站视频:https://www.bilibili.com/video/BV1ui4y137X9CSDN源码:https://blog.csdn.net/m0_46625346/article/details/107149473Java课程设计——中国象棋B站视频:https://www.bilibili

    2022年4月8日
    49
  • 2004(馬拉)微軟科技教育大會嘅卡拉囌

    2004(馬拉)微軟科技教育大會嘅卡拉囌

    科技 2021年7月21日
    64

发表回复

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

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