Javascript 铬:模糊-警报-聚焦序列导致无限警报循环
考虑以下代码:Javascript 铬:模糊-警报-聚焦序列导致无限警报循环,javascript,html,google-chrome,alert,Javascript,Html,Google Chrome,Alert,考虑以下代码: var input=document.getElementById(“hello”); input.addEventListener('blur',function(){ 警惕(“你好”); input.select(); input.focus(); }); 以下是我的chrome解决方案: var inputs=document.querySelectorAll(“输入”), len=输入。长度, 我 var gflag=假; 功能myalert(m,o){ if(gfl
var input=document.getElementById(“hello”);
input.addEventListener('blur',function(){
警惕(“你好”);
input.select();
input.focus();
});代码>
以下是我的chrome解决方案:
var inputs=document.querySelectorAll(“输入”),
len=输入。长度,
我
var gflag=假;
功能myalert(m,o){
if(gflag){
返回;
}
gflag=真;
警报(m);
o、 焦点();
setTimeout(函数(){gflag=false;},10);
}
函数makeBlurHandler(){
“严格使用”;
返回函数(){
如果(this.value==“”){
myalert(“不能为空!”,此选项);
this.nextElementSibling.innerHTML=“不能为空!”;
}否则{
this.nextElementSibling.innerHTML=“”;
}
};
}
对于(i=0;i
.errorMessage{
颜色:红色;
}
用户名:
密码:
包装输入。选择();input.focus()代码>在setTimeout中(0毫秒很好)-这也将修复firefox。在firefox的情况下,在警报发出后,输入不会聚焦。请使用alert
以外的内容显示消息。理想情况下,一些不需要点击就可以忽略的东西。@JaromandaX我以前试过,大多数时候都能用。问题是,如果用户聚焦输入,然后打开一个新选项卡,无限循环将再次发生。@4不幸的是,在这种情况下,这不是一个选项。为什么不是一个选项?我无法想象一个带有警报的讨厌的输入框是个好主意。