aspx.net检索单击按钮

时间:2012-11-16 15:33:31

标签: c# asp.net keyboard-shortcuts keypress onkeydown

这是我的代码:

<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)。

任何想法为什么?

1 个答案:

答案 0 :(得分:1)

很可能是在DOM中的第一个输入元素上发生了输入按下事件。一个建议是在文档上监听keydown事件,如果按下的键是回车键,则调用所需的方法。

$(document).keypress(function(e){
    var code = e.keyCode ? e.keyCode : e.which;
    if(code == '13') //call desired method
});