首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >chrome中的onblur onfocus无限循环问题

chrome中的onblur onfocus无限循环问题
EN

Stack Overflow用户
提问于 2018-01-31 15:20:33
回答 1查看 7.7K关注 0票数 4

javascript函数用于验证在OnBlur事件中调用的数字。如果该值无效,它将警告弹出窗口,并将焦点返回到该字段。

示例代码:

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<body>

Enter your number: <input type="text" id="fname" onfocus="this.select()" onblur="myFunction(this)">

<script>
function myFunction(field) {
    if( isNaN(field.value)){
    alert('wrong !!!');
    field.focus();
    return false;
    }
}
</script>

</body>
</html>

在Internet Explorer 11(11.447.14393.0版)/ Windows 10中验证工作正常。

但在chrome中,单击警报的“确定”或“关闭”按钮后,焦点不会返回字段。警报再次弹出。所以每次点击OK/Close时,Alert都会无限地弹出。

chrome版本为63.0.3239.132

EN

回答 1

Stack Overflow用户

发布于 2019-06-21 02:31:20

实现正确行为的一种更清晰的方法是在显示警报之前获取元素并调用其上的blur方法,现在您不必删除事件侦听器。

代码语言:javascript
复制
var inputField = document.getElementById("theIdForTheInputField");

//remove focus
inputField.blur();

//display your alert
alert("My Chrome browser doesn't get stuck anymore!");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48536618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档