Javascript ASPX页面上的onkeydown事件
我正在尝试向.NET中的aspx页面添加onKeyDown事件。由于我无法访问body标签,我尝试了以下操作:Javascript ASPX页面上的onkeydown事件,javascript,asp.net,Javascript,Asp.net,我正在尝试向.NET中的aspx页面添加onKeyDown事件。由于我无法访问body标签,我尝试了以下操作: if (window.addEventListener) { window.addEventListener('onkeydown', checkEnter(event), false); } else { window.attachEvent('onkeydown', checkEnter(), false); } function checkEnter(event
if (window.addEventListener) {
window.addEventListener('onkeydown', checkEnter(event), false);
}
else {
window.attachEvent('onkeydown', checkEnter(), false);
}
function checkEnter(event) {
if (event.keyCode == 13) {
ShowList();
}
}
但是,结果表明,该事件没有以这种方式定义。有人能帮我吗?使用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>
或用户面板控件的DefaultButton来捕获enter键,如果使用Button控件,这是首选方法
第一个错误是绑定事件的方式
window.addEventListener('onkeydown', checkEnter(event), false);
您正在绑定该函数时执行它。-----------^
您只需将函数分配给事件
window.addEventListener'keydown',checkEnter,false
此外,事件类型应为keydown
您不必担心将事件对象传递给函数,因为它在默认情况下是传入的。您需要更改两件事: 从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();
}
}
请参阅:这样捕获Enter键的原因是什么?@Win使“搜索”功能工作,而不是让用户单击“确定”按钮。@ArtF FWIW您应该检查event.which==13 | | event.keyCode==13如何防止执行它?
if (window.addEventListener) {
window.addEventListener('keydown', checkEnter, false);
}
else {
window.attachEvent('keydown', checkEnter, false);
}
function checkEnter(event) {
if (event.keyCode == 13) {
ShowList();
}
}