这是我的代码:
<script type="text/javascript" language="javascript">
$(document).ready(function() {
// esc -------------------------------------------
$(document).bind('keyup', 'esc', function(event) { seaClick('OboutImageButton1'); });
$('#txbLct').bind('keyup', 'esc', function(event) { seaClick('OboutImageButton1'); });
$('#txbQty').bind('keyup', 'esc', function(event) { seaClick('OboutImageButton1'); });
$('#btnOk').bind('keyup', 'esc', function(event) { seaClick('OboutImageButton1'); });
$('#OboutImageButton1').bind('keyup', 'esc', function(event) { seaClick('OboutImageButton1'); });
// down ------------------------------------------
$(document).bind('keyup', 'down', function(event) { myClick('btnNext'); });
$('#txbLct').bind('keyup', 'down', function(event) { myClick('btnNext'); });
$('#txbQty').bind('keyup', 'down', function(event) { myClick('btnNext'); });
$('#btnOk').bind('keyup', 'down', function(event) { myClick('btnNext'); });
//$('#OboutImageButton1').bind('keyup', 'down', function(event) { myClick('btnNext'); });
// up --------------------------------------------
$(document).bind('keyup', 'up', function(event) { myClick('btnPrev'); });
$('#txbLct').bind('keyup', 'up', function(event) { myClick('btnPrev'); });
$('#txbQty').bind('keyup', 'up', function(event) { myClick('btnPrev'); });
$('#btnOk').bind('keyup', 'up', function(event) { myClick('btnPrev'); });
//$('#OboutImageButton1').bind('keyup', 'up', function(event) { myClick('btnPrev'); });
// return ----------------------------------------
$(document).bind('keyup', 'return', function(event) { myClick('btnOk'); });
$('#txbLct').bind('keyup', 'return', function(event) { myClick('btnOk'); });
$('#txbQty').bind('keyup', 'return', function(event) { myClick('btnOk'); });
$('#btnOk').bind('keyup', 'return', function(event) { myClick('btnOk'); });
//$('#OboutImageButton1').bind('keyup', 'return', function(event) { myClick('btnOk'); });
});
function myClick(buttonName) {
//alert(buttonName);
//Get the button the user wants to have clicked
var btn = document.getElementById(buttonName);
if (btn != null) { //If we find the button click it
//alert('clicked');
btn.click();
event.keyCode = 0
} else {
alert('error');
}
//alert('end');
}
</script>
我使用 myClick
上的代码来调用与按钮单击关联的函数来做一些事情,基本上它可以工作,但如果我尝试使用 Enter 或 Esc 等按钮/键,有时页面会调用其他一些按钮(并且不会传递函数myClick
)。
知道为什么吗?
最有可能的是,输入按下事件发生在 DOM 中的第一个输入元素上。一个建议是在文档中侦听键关闭事件,如果按下的键是回车键,则调用所需的方法。
$(document).keypress(function(e){
var code = e.keyCode ? e.keyCode : e.which;
if(code == '13') //call desired method
});