元素从失去焦点到其他元素被点击期间的事件

在填写表单并点击提交时,输入框的blur事件与按钮的click事件有特定顺序。mousedown事件可以确保在点击按钮时优先执行。onchange事件在非IE浏览器中,输入状态下的回车也会触发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

假设我们正在填写一张表单,输入完文本内容后,点击提交按钮;那么在这期间,对于这两个表单元素来说都发生了哪些事件呢?

<body>
    <input type="text" onblur="inputBlur()" onchange="inputChange()"> 
    <button onclick="btnClick()" onmousedown="btnMouseDown()" onmouseup="btnMouseUp()">OK</button>

    <script>
        //input失去焦点
        function inputBlur(){
            console.log("input blur");
        }
        //input值变化
        function inputChange(){
            console.log("input change");
        }
        //按钮click事件
        function btnClick(){
            console.log("btn click");
        }
        //按钮mousedown事件
        function btnMouseDown(){
            console.log("btn mousedown");
        }
        //按钮mouseup事件
        function btnMouseUp(){
            console.log("btn mouseup");
        }
    </script>
</body>

效果图:
这里写图片描述

从输出可以看出blur事件并不总是首先发生的,可能与我的认知不一样。。但是正因如此才可以使用mousedown事件来保证在点击按钮的时候先执行按钮事件函数而不是执行输入框的blur响应函数。

注:
onchange事件触发条件为输入框值改变且失去焦点(但是非IE浏览器中,在元素输入状态下按回车也会触发onchange事件)
click事件的执行顺序为mousedown -> mouseup -> click
dblclick事件的执行顺序为mousedown -> mouseup -> click -> mousedown -> mouseup -> click -> dblclick

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值