如何确定在javascript中调用了什么事件
我使用的是ASP.NET,但在某个页面上,我使用的是常规html文本框,因为请求是通过AJAX完成的,而不是传统的全文回发。我的问题是,当用户填写最后一个文本框并按下enter键时,文本框会失去焦点,页面会一直滚动到底 我试着使用onblur事件,但它不起作用,所以我想知道当按下enter键(或者任何键)时,实际调用的是什么事件 我试过这个:如何确定在javascript中调用了什么事件,javascript,jquery,Javascript,Jquery,我使用的是ASP.NET,但在某个页面上,我使用的是常规html文本框,因为请求是通过AJAX完成的,而不是传统的全文回发。我的问题是,当用户填写最后一个文本框并按下enter键时,文本框会失去焦点,页面会一直滚动到底 我试着使用onblur事件,但它不起作用,所以我想知道当按下enter键(或者任何键)时,实际调用的是什么事件 我试过这个: $("#loginPass").blur(function (e) { if (e.keyCode == 13)
$("#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时,我没有想到。这通常会有帮助。缺点是,您可能需要在不同的浏览器中进行测试。在某些浏览器中,事件顺序甚至可能是随机的。