Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript按键事件在Fireforx和Chrome中运行完美,但在Internet Explorer中仅运行一次_Javascript_Asp.net_Javascript Events_Postback - Fatal编程技术网

Javascript按键事件在Fireforx和Chrome中运行完美,但在Internet Explorer中仅运行一次

Javascript按键事件在Fireforx和Chrome中运行完美,但在Internet Explorer中仅运行一次,javascript,asp.net,javascript-events,postback,Javascript,Asp.net,Javascript Events,Postback,我正在开发一个小调查问卷,在Javascript中按下TAB键时触发ASP链接按钮单击 Javascript如下所示: document.onkeydown = keydown; function keydown(event) { if (event.key == "Tab" || event.keyCode == 9 || event.which == 9 && !event.shiftKey) __doPostBack('&l

我正在开发一个小调查问卷,在Javascript中按下TAB键时触发ASP链接按钮单击

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);
        }
    }
document.onkeydown=keydown;
功能键控(事件){
if(event.key==“Tab”| | event.keyCode==9 | | event.which==9&&!event.shiftKey)
__doPostBack('','',true,'','',false,true);
如果(!事件){
if(window.event.keyCode==9&&window.event.keyCode==9&&window.event.shiftKey)
__doPostBack('','',true,'','',false,true);
}
}

我的ASP链接按钮如下所示:

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


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

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


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

您需要返回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;
}
document.onkeydown=keydown;
功能键控(事件){
如果(!事件){
event=window.event;
}
if(event.key==“Tab”| | event.keyCode==9 | | event.which==9&&!event.shiftKey){
__doPostBack('','',true,'','',false,true);
//仅捕获选项卡事件
返回false;
}
返回true;
}

(我还为您编写了一些代码)

在代码末尾添加return falsefunction@Webtecher它现在可以工作了,但现在我按下的所有键都会回发。如何使其仅在TAB键上点火?谢谢!!现在它工作了。。。返回值在错误的位置为false。我编辑了您的答案,以便仍然可以在页面上输入文本。注意:一旦我使用TAB键导航,ASP链接按钮在Chrome和IE中不起作用。只有Firefox在按下TAB键后仍然起作用。有什么想法吗?没有对不起,我对ASP一无所知。