我正在尝试将一个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
以这种方式未定义。任何人都可以帮我这个吗?
答案 0 :(得分:0)
使用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>
答案 1 :(得分:0)
第一个错误是你绑定事件的方式..
window.addEventListener('onkeydown', checkEnter(event), false);
您正在绑定它时执行该功能。 ------------------- ^ < / p>
您只需将该功能分配给该活动即可。
window.addEventListener('keydown', checkEnter, false);
事件类型也应该是“keydown”
您无需担心将事件对象传递给函数,因为它默认传入。
答案 2 :(得分:0)
你想要改变的两件事:
无需将“event”传递给“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