layer弹窗在键盘按回车将反复刷新
条件:弹窗后不做任何点击操作或者聚焦操作
对于layer.load,弹出后反复按回车,load层将不断刷新,即使设置了自动消失也只有等不按回车键才会生效。
对于layer iframe层有表单就更糟糕了,每按一次回车,iframe表单页面将会被刷新,数据将会丢失。(这是form中存在input按回车会自动以form的method属性方法提交表单,如果你在提交按钮上设定了弹窗事件的话,将会直接提交,并且弹窗也被激发,出现错误)。
这似乎是打开iframe或弹窗后,鼠标的焦点出现了问题,鼠标的焦点还停留在激发窗口的控件上,每按一次回车,相当于反复弹窗,会在屏幕上叠很多层。
测试了一下,当弹窗后,点击弹窗身体的任意部位后(不包括标题),再按回车键就不会出现bug了。
对于layer.load,弹出后反复按回车,load层将不断刷新,即使设置了自动消失也只有等不按回车键才会生效。
对于layer iframe层有表单就更糟糕了,每按一次回车,iframe表单页面将会被刷新,数据将会丢失。(这是form中存在input按回车会自动以form的method属性方法提交表单,如果你在提交按钮上设定了弹窗事件的话,将会直接提交,并且弹窗也被激发,出现错误)。
这似乎是打开iframe或弹窗后,鼠标的焦点出现了问题,鼠标的焦点还停留在激发窗口的控件上,每按一次回车,相当于反复弹窗,会在屏幕上叠很多层。
测试了一下,当弹窗后,点击弹窗身体的任意部位后(不包括标题),再按回车键就不会出现bug了。
-
parent.document.onkeydown = function(e){
我这个是用在弹出层页面用的
var ev =parent. document.all ? window.event : e;
if(ev.keyCode==13) {
$('#loginBtn').trigger("click");
return false
}
}
document.onkeydown = function(e){
var ev =document.all ? window.event : e;
if(ev.keyCode==13) {
$('#loginBtn').trigger("click");
return false
}
}
<input id="loginBtn" name="button" type="submit" value="登 录" class="l_button" />
http://fly.layui.com/jie/14518/