焦点在另一个控件上,但按enter键会按默认按钮

focus is on another control but pressing enter presses the default button

本文关键字:enter 默认按钮 但按 另一个 控件 焦点      更新时间:2023-09-26

我想要一个当前有焦点的超链接,当我按回车键时单击。

有人能帮我的javascript代码?

我确实在javascript中写了一个代码,当焦点在该按钮上时,实际上尝试单击该按钮-

 if ((KeyCode == 13))
                {
                    evt.returnValue=false;
                    evt.cancel = true;
                
                    if((document.activeElement.name != 'btnChangeRep') && 
                        (document.activeElement.name != 'btnSubmitAndOpen') &&  
                        (document.activeElement.name != 'hypTaxID') && document.activeElement.name != 'hypCoTaxID') &&
                        (document.activeElement.name != 'hypFormerRegSearch'))
                {
                        btn = document.getElementById('btnSubmit');
                        if (btn == null)
                    {                       
                            document.getElementById('btnSave').click();                 
                    }
                        else
                    {                   
                            document.getElementById('btnSubmit').click();               
                    }
                }
                else 
                {
                    document.getElementById(document.activeElement.name).click();                   
                }

在firefox中可以正常工作,但在IE中按回车键链接无法打开。

谁能告诉我我哪里错了

EDIT HTML for hyperlink

<asp:hyperlink id="hypTaxID" runat="server"></asp:hyperlink>

在链接上调用click将触发该链接的任何javascript点击事件,但并不总是导致导航发生。

在过去,我不得不使用javascript来做导航。您可能需要如下内容。(我也会使用jquery来简化它)

if ((KeyCode == 13))
{
   evt.returnValue=false;
   evt.cancel = true;
   if((document.activeElement.name != 'btnChangeRep') && 
     (document.activeElement.name != 'btnSubmitAndOpen') &&  
     (document.activeElement.name != 'hypTaxID') && 
      document.activeElement.name != 'hypCoTaxID') &&
     (document.activeElement.name != 'hypFormerRegSearch'))
  {
        btn = document.getElementById('btnSubmit');
        if (btn == null)
        {                       
            document.getElementById('btnSave').click();                 
        }
        else
        {                   
             document.getElementById('btnSubmit').click();               
        }
  }
  else 
  {  
      /*new code*/
      var link = document.getElementById(document.activeElement.name).getAttribute("href"); 
      document.location.href = link;
  }
}

还要确保您的ASP.net元素的ID是您所期望的。Webforms因ID和名称混淆而臭名昭著。

我也会评估你为什么不在服务器端使用ASP.net来处理这个问题。使用ASP.net面板可以为面板设置默认按钮,以便在按下输入按钮时单击该按钮。