0

我正在开发一个小型问卷,并在TAB从 Javascript 中按下键时触发 ASP LinkBut​​ton 单击。

Javascript如下:

 document.onkeydown = keydown;
    function keydown(event) {
        if (event.key == "Tab" || event.keyCode == 9 || event.which == 9 && !event.shiftKey)
            __doPostBack('<%=btnNext.UniqueID%>', '', true, '', '', false, true); 
        else if (!event) {
            if (window.event.keyCode == 9 && window.event.keyCode == 9 && !window.event.shiftKey)
                __doPostBack('<%=btnNext.UniqueID%>', '', true, '', '', false, true);
        }
    }

我的 ASP LinkBut​​ton 如下所示:

 <asp:LinkButton ID="btnNext" runat="server" CausesValidation="true"></asp:LinkButton>

LinkBut​​ton 使页面重新加载下一个问题。这一切都在 Firefox 和 Chrome 中完美运行,但在 IE 中却不行。

在 IE 中,只有第一次TAB按键有效,但是当我再次按下TAB第二次时,在加载下一个问题后,什么也没有发生。

知道如何让它在 IE 中工作吗?讨厌这些浏览器差异....

4

1 回答 1

1

需要返回false来取消tab键导致的默认动作

document.onkeydown = keydown;
function keydown(event) {
    if(!event){
        event = window.event;
    }
    if (event.key == "Tab" || event.keyCode == 9 || event.which == 9 && !event.shiftKey){
        __doPostBack('<%=btnNext.UniqueID%>', '', true, '', '', false, true); 
        // Only capture tab events
        return false;
    }
    return true;
}

(我也把你的代码弄干了)

于 2012-05-16T07:13:58.620 回答