javascript - 文本框onblur事件连续触发的问题
漂亮男人
漂亮男人 2017-05-19 10:13:27
0
2
1059

text标签 onblur="alert()"
文本框失去光标的时候触发alert();
但是当鼠标选中此text,然后鼠标离开整个浏览器窗口(比如点击下桌面),这样触发alert()事件
现在问题来了:
鼠标回到浏览器点击弹出的"确定"按钮后,弹窗继续弹出...
怎么搞?

漂亮男人
漂亮男人

全部回复(2)
刘奇

不会出现这个情况的,贴出你的代码。


补充

我能回答就肯定试过的啦下面代码就没有问题

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <input type="text" onblur="alert();">
</body>
</html>

已经测试IE11 、 Firefox 、Chrome


补充

所描述的情况确实存在,想了下原因:

切回去后窗口失去了焦点,再回来的时候,文本框又自动获取了焦点 所以一直继续,从而不断触发。

这种问题实际在使用的时候出现情况应该比较少。 一种解决方案是在窗口失去焦点的时候让文本框也失去焦点如下:

已测试问题解决

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <input type="text" onblur="alert();">
    <script>
        window.onblur=function(){
            document.getElementsByTagName('input')[0].blur();
        }
    </script>
</body>
</html>
黄舟

刚刚试了下,确实有这个现象,但是把alert改成其他的(比如console.log)就不会出现反复触发 blur 的情况,一般情况下应该也不会用到alert,所以这个问题应该也不会有很大影响。至于为什么出现这种情况,我也不清楚~~

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板