如何使用JavaScript将焦点置于按钮时检测“tab buttonpress”

时间:2010-08-05 08:58:39

标签: javascript

我只是想知道你是否有人在按钮上做过onkeypress。

我的按钮是这样的:

asp:Button ID="btnClear" runat="server" Text="Clear" onkeypress="return goToFirst();"/>

javascript:

function goToFirst(evt) {
    var e = event || evt; // for trans-browser compatibility
    var charCode = e.which || e.keyCode;

    alert(charCode);
    if (charCode = 9 ) {
        document.getElementById('txtFirstName').focus();
        document.getElementById('txtFirstName').select();
    }

    return false;

我的目标是检测按钮上的tab键,并在按下Tab键时将焦点设置在指定的文本框上。

问题是按Tab键时onkeypress事件不会触发。其他键如数字和字母会触发事件,但不会触发标签。

我的目标是否有解决方案?

提前致谢!

2 个答案:

答案 0 :(得分:8)

使用onkeydown。这是一个demo

<input ID="btnClear" onkeydown="return goToFirst();"/>

function goToFirst(evt) {
    var e = event || evt; // for trans-browser compatibility
    var charCode = e.which || e.keyCode;

    alert(charCode);
    if (charCode == 9 ) {
        document.getElementById('txtFirstName').focus();
        document.getElementById('txtFirstName').select();
    }

    return false;
};

答案 1 :(得分:-1)

显示输入后,我使用ev.stopPropagation()和ev.preventDefault()解决了类似的问题。