如何确定在javascript中调用了什么事件

如何确定在javascript中调用了什么事件,javascript,jquery,Javascript,Jquery,我使用的是ASP.NET,但在某个页面上,我使用的是常规html文本框,因为请求是通过AJAX完成的,而不是传统的全文回发。我的问题是,当用户填写最后一个文本框并按下enter键时,文本框会失去焦点,页面会一直滚动到底 我试着使用onblur事件,但它不起作用,所以我想知道当按下enter键(或者任何键)时,实际调用的是什么事件 我试过这个: $("#loginPass").blur(function (e) { if (e.keyCode == 13)

我使用的是ASP.NET,但在某个页面上,我使用的是常规html文本框,因为请求是通过AJAX完成的,而不是传统的全文回发。我的问题是,当用户填写最后一个文本框并按下enter键时,文本框会失去焦点,页面会一直滚动到底

我试着使用onblur事件,但它不起作用,所以我想知道当按下enter键(或者任何键)时,实际调用的是什么事件

我试过这个:

$("#loginPass").blur(function (e) {
            if (e.keyCode == 13) 
                $("#DealerLogin").click();
        });

我有Firefox的firebug,但不知道如何查看与js相关的操作正在启动。

我不会称自己为javascript专家,但我会尝试这样做

当我陷入困境,不知道是否或何时调用我的方法时,我会转而使用可靠的老“alert('in method 1');”技术来调试代码

$(document).ready(function(){ 
    alert("In document.ready()"); 

    $("#loginPass").blur(function(e) 
    { 
        alert("In loginPass.blur() with keycode = " + e.keyCode); 
    }); 

    $("#loginPass").keydown(function(e) 
    { 
        alert("In loginPass.keydown() with keycode = " + e.keyCode); 
    }); 
}); 

这当然不是一种优雅的技巧,但往往具有启发性。如果您发现没有任何方法被调用,我想请确保您的文本框id与“loginPass”正确匹配。

在Firebug脚本面板中,您可以单击暂停按钮:

在按enter键之前尝试一下,然后逐步完成代码

我的问题是,当用户填写 弹出最后一个文本框并按 输入文本框将失去焦点,并且 页面一直滚动到 底部


这绝对不是浏览器的默认行为。您需要知道,这是什么,只需捕获此事件或部分代码。

keydown
keypress
keypup
;按该顺序。
e
是一个事件对象,应该包含它所表示的事件的完整上下文,包括触发它的内容(源元素、触发器类型等)。应该可以用Firebug来检查。@JCOC611如果你按[Tab]键,事情会变得更复杂。模糊的输入得到向下键,新聚焦的输入得到向上键。@Marc,你完全正确,当我试图在非关键事件上使用e.keyCode时,我没有想到。这通常会有帮助。缺点是,您可能需要在不同的浏览器中进行测试。在某些浏览器中,事件顺序甚至可能是随机的。