当我按下回车键时,我想要一个当前有焦点的超链接。
有人可以帮助我使用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链接中无论如何都无法打开。
有人可以帮我解决我出错的地方
编辑 HTML for hyperlink
<asp:hyperlink id="hypTaxID" runat="server"></asp:hyperlink>
答案 0 :(得分:1)
调用点击链接会触发链接的任何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面板可以为面板设置default button,以便在按下输入按钮时单击该按钮。