在我的 aspx 页面中,我还使用两个模态扩展器,但主要问题是当模态弹出扩展器出现在前面时,仍然搜索按钮点击我想要那个模式弹出按钮应在弹出窗口显示时单击 Enter 键。
我在页面中设置了默认输入键事件,如下所示:
$(document).ready(function () {
$("body").bind("keydown", function (event) {
var keycode = (event.keyCode ? event.keyCode : (event.which ? event.which : event.charCode));
if (keycode == 13) {
document.getElementById('btnSearch').click();
return false;
} else {
return true;
}
});
而且效果很好。
但问题是我的页面上还有两个 ModalPopupExtender
其中 Id = ModalPopupExtender1
和 Id = ModalPopupExtender2
。
现在我希望当我的 ModalPopupExtender1 调用时,带有 ID = "btnMUpdate"
的按钮应单击 Enter 键。
当我的 ModalPopupExtender2 调用时
带有 ID = "btnConfirm"
的按钮应点击 Enter 键。
最佳答案
$(document).ready(function () {
this.ModalPopupExtender1.add_showing(show1);
this.ModalPopupExtender2.add_showing(show2);
this.ModalPopupExtender1.add_hiding(hide1);
this.ModalPopupExtender2.add_hiding(hide2);
$("body").bind("keydown", function (event) {
var keycode = (event.keyCode ? event.keyCode : (event.which ? event.which : event.charCode));
if (keycode == 13) {
if (this.ModalPopupExtender1IsShown) {
document.getElementById('btnMUpdate').click();
} else if (this.ModalPopupExtender2IsShown) {
document.getElementById('btnConfirm').click();
} else {
document.getElementById('btnSearch').click();
}
return false;
} else {
return true;
}
});
function show1() {
this.ModalPopupExtender1IsShown = true;
}
function show2() {
this.ModalPopupExtender2IsShown = true;
}
function hide1() {
this.ModalPopupExtender1IsShown = false;
}
function hide2() {
this.ModalPopupExtender2IsShown = false;
}
在每个 ModalPopupExtender 上,您可以对显示和隐藏事件进行回调
关于javascript - 如何在三种不同情况下管理此回车键事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48782091/