问题描述:
1.在用户控件中定义按钮的EventHandler事件,其他用户控件或页面实现该事件的具体逻辑。
2.最初测试时正常,后来在测试时发现,在页面输入框中直接回车,会触发按钮的EventHandler事件(作者使用的button控件, UseSubmitBehavior默认是true)。由于用户控件使用的是弹出层,所以为严重bug。
3.于是在EventHandler的按钮上加上 UseSubmitBehavior="false" ,结果问题出来了,那就是点击按钮没有任何反应。
解决:将UseSubmitBehavior="false" 去掉。使用js为输入框或整个页面注册onkeydown事件。
$("document,input").on("keydown", function (e) {
if (e.keyCode == 13) {
e.stopPropagation();
document.getElementById("<%=btnlogin.ClientID%>").click();
return false;
}
});

本文介绍了一种在用户控件中定义按钮事件处理程序的方法,并解决了因按钮的UseSubmitBehavior属性导致的问题。通过使用JavaScript注册onkeydown事件,可以有效地控制回车键的行为,避免触发错误的事件。
395

被折叠的 条评论
为什么被折叠?



