1

这是我的代码:

<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调用与按钮相关联的函数单击以执行某些操作,基本上它可以工作,但是如果我尝试使用类似Enteror的按钮/键Esc,有时页面会调用其他按钮(并且不会通过关于功能myClick)。

任何想法为什么?

4

1 回答 1

1

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

$(document).keypress(function(e){
    var code = e.keyCode ? e.keyCode : e.which;
    if(code == '13') //call desired method
});
于 2012-11-16T16:06:15.357 回答