我有一个asp.net表单,它有3个文本框和一个asp.net链接按钮控件。我想在用户按下回车键时调用按钮单击事件处理程序方法。我使用了asp.net面板及其默认按钮属性。它在IE中工作。但不在其他浏览器中,如firefox等。有没有其他方法可以这样做?
答案 0 :(得分:3)
这似乎是FF3的一个错误(不确定),但修复的脚本如下所示
将其保留在页面的末尾,以便它覆盖ASP.NET呈现的WebForm_FireDefaultButton方法。
var __defaultFired = false;
function WebForm_FireDefaultButton(event,target){ var element = event.target || event.srcElement;
if (!__defaultFired && event.keyCode == 13 && !(element && (element.tagName.toLowerCase() == "textarea"))) {
var defaultButton;
if (__nonMSDOMBrowser)
defaultButton = document.getElementById(target);
else
defaultButton = document.all[target];
if (defaultButton) {
if(typeof(defaultButton.click) != "undefined")
defaultButton.click();
else
eval(unescape(defaultButton.href.replace("javascript:", "")));
event.cancelBubble = true;
if (event.stopPropagation) event.stopPropagation();
return false;
}
}
return true;
}
答案 1 :(得分:3)
您可以尝试 DefaultButton 属性(ASP.Net 2.0及更高版本)。 ASP.Net表单和Panel控件都有一个 DefaultButton 属性。默认操作意味着输入键应触发按钮单击。
<form id="Form1" defaultbutton="SubmitButton" runat="server">
<asp:panel id="panel1" defaultbutton="anotherbutton" runat="server">
</asp:panel>
</form>
可以通过添加以下内容来解决已知的FireFox问题:UseSubmitBehavior="False"
到你的提交按钮。这个Blog描述了UpdatePanel中的问题和解决方案,它也可以在这里工作。
另请查看此question,其中包含指向其他可能解决方案的链接。
答案 2 :(得分:1)
答案 3 :(得分:0)
更好的选择是使用AJAX.NET和页面方法来执行此操作。请检查此http://www.singingeels.com/Articles/Using_Page_Methods_in_ASPNET_AJAX.aspx