javascript - 如何在三种不同情况下管理此回车键事件

标签 javascript c# jquery asp.net

在我的 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 = ModalPopupExtender1Id = 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/

相关文章:

javascript - 悬停列表项时更改 div 的背景图像

c# - 值转换器显示在 Intellisense 中,但编译器无法在 C# WinRT 应用程序中找到?

jQuery $.ajax 调用同步执行,而不是在调用 WCF 服务时并发执行

c# - 为什么允许我在非 GUI 线程中加载图像?

jquery - 将元素的字符串存储到变量中,通过 Toggle() 传递它

jquery - 正则表达式(用于 jQuery)验证带 2 位小数的正数

javascript - 使用 JavaScript 验证表单

javascript - 根据 API 响应显示带有动态内容的 Bootstrap Popover

javascript - 未知的 JavaScript 函数

c# - 对象是类,因为枚举是...?