0

TAB私は小さなアンケートを作成していて、Javascriptからキーが押されたときにASPLinkBut​​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);
        }
    }

私のASPLinkBut​​tonは次のようになります。

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

LinkBut​​tonを使用すると、ページが次の質問でリロードされます。すべてFirefoxとChromeで完全に機能しますが、IEでは機能しません。

IEでは、最初のTABキーを押すだけで機能しますがTAB、2回目にもう一度押すと、次の質問が読み込まれた後、何も起こりません。

IEでそれを機能させる方法はありますか?これらのブラウザの違いを嫌う...

4

1 に答える 1

1

タブによるデフォルトのアクションをキャンセルするには、falseを返す必要があります

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 に答える