ASPX页面上的onkeydown事件
onkeydown event on an ASPX page
我正在尝试将onKeyDown
事件添加到.NET中的aspx页面。由于我无法访问body标记,我尝试了这样做:
if (window.addEventListener) {
window.addEventListener('onkeydown', checkEnter(event), false);
}
else {
window.attachEvent('onkeydown', checkEnter(), false);
}
function checkEnter(event) {
if (event.keyCode == 13) {
ShowList();
}
}
然而,event
以这种方式被证明是未定义的。有人能帮我吗?
第一个错误是绑定事件的方式。。
window.addEventListener('onkeydown', checkEnter(event), false);
绑定时您正在执行该函数。------------------^
您只需要将函数分配给事件即可。
window.addEventListener('keydown', checkEnter, false);
此外,事件类型应为"keydown"
您不必担心将事件对象传入函数,因为它是默认传入的。
使用jQuery可以很容易地获得相同的结果。
<script type="text/javascript"
src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
$(document).keypress(function (e) {
if (e.which == 13) {
alert("Enter key is pressed.");
}
});
</script>
或者使用Panel控件的DefaultButton来捕获回车键,如果使用Button控件,这是一种首选方法。
<asp:Panel runat="server" ID="SearchPanel" DefaultButton="SearchButton">
<asp:Button runat="server" ID="SearchButton" Text="Search" />
</asp:Panel>
您想要更改的两件事:
- 从"onkeydown"中删除"on"
-
无需将"事件"传递给"checkEnter"
if (window.addEventListener) { window.addEventListener('keydown', checkEnter, false); } else { window.attachEvent('keydown', checkEnter, false); } function checkEnter(event) { if (event.keyCode == 13) { ShowList(); } }
请参阅:https://developer.mozilla.org/en-US/docs/Web/API/EventTarget.addEventListener
相关文章:
- Javascript:将onkeydown事件添加到prompt()中
- ASPX页面上的onkeydown事件
- Javascript onkeydown事件只触发一次
- 从 onkeydown 事件 (Javascript) 获取当前用户输入
- 如何正则表达式匹配来自 onKeyDown 事件的 URL
- 使 onKeyDown 触发 HTML 按钮的 onClick 事件
- TinyMCE文本区域没有't响应'onkeydown'事件
- 当I'm使用onKeyDown事件
- 我如何获得多个独立的文档.Onkeydown事件工作
- 意外的 Javascript onkeydown 事件和 document.write
- Onkeydown事件在画布上不起作用
- ASP.onkeydown事件在Firefox中不起作用
- 在onkeydown事件中调用作用域函数
- onkeydown事件变量破坏EventListener代码
- 关注具有文档级onkeydown事件的HTML元素
- onKeyDown事件未触发
- 不能从onkeydown事件中发出警报值
- HTML元素上的Javascript onkeydown事件
- 如何在画布游戏中使用javascript onkeydown事件后阻止facebook滚动条移动
- Javascript函数在OnKeyPress和OnKeyDown事件上没有被调用