Javascript ASP.NET:在表单中按Enter键时调用codebehind方法

Javascript ASP.NET:在表单中按Enter键时调用codebehind方法,javascript,asp.net,Javascript,Asp.net,我有一个asp.net表单,它有3个文本框和一个asp.net链接按钮控件。我想在用户按enter键时调用button click事件处理程序方法。我使用了asp.net面板及其默认按钮属性。它在IE中工作,但在firefox等其他浏览器中不工作。。有没有其他方法可以这样做?这似乎是FF3的一个bug,不确定,但下面给出了修复的脚本 将其保留在页面的末尾,以便覆盖ASP.NET呈现的WebForm_FireDefaultButton方法。 var\uuu defaultFired=false 函

我有一个asp.net表单,它有3个文本框和一个asp.net链接按钮控件。我想在用户按enter键时调用button click事件处理程序方法。我使用了asp.net面板及其默认按钮属性。它在IE中工作,但在firefox等其他浏览器中不工作。。有没有其他方法可以这样做?

这似乎是FF3的一个bug,不确定,但下面给出了修复的脚本 将其保留在页面的末尾,以便覆盖ASP.NET呈现的WebForm_FireDefaultButton方法。 var\uuu defaultFired=false

函数WebForm\u FireDefaultButtonevent,目标{ var元素=event.target | | event.src元素

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;

}这似乎是FF3的一个bug,不确定,但下面给出了修复的脚本 将其保留在页面的末尾,以便覆盖ASP.NET呈现的WebForm_FireDefaultButton方法。 var\uuu defaultFired=false

函数WebForm\u FireDefaultButtonevent,目标{ var元素=event.target | | event.src元素

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;
}

您可以尝试使用DefaultButton属性ASP.Net 2.0及更高版本。ASP.Net窗体和面板控件都具有DefaultButton属性。默认操作意味着enter键应触发按钮单击

<form id="Form1" defaultbutton="SubmitButton" runat="server">
  <asp:panel id="panel1" defaultbutton="anotherbutton" runat="server">
  </asp:panel>
</form>
有一个已知的FireFox问题可以通过添加:UseSubmitBehavior=False来解决 单击“提交”按钮。这在UpdatePanel中描述了问题和解决方案,在这里也可以

也请检查此选项,其中包含指向其他可能解决方案的链接。

您可以尝试使用DefaultButton属性ASP.Net 2.0及更高版本。ASP.Net窗体和面板控件都具有DefaultButton属性。默认操作意味着enter键应触发按钮单击

<form id="Form1" defaultbutton="SubmitButton" runat="server">
  <asp:panel id="panel1" defaultbutton="anotherbutton" runat="server">
  </asp:panel>
</form>
有一个已知的FireFox问题可以通过添加:UseSubmitBehavior=False来解决 单击“提交”按钮。这在UpdatePanel中描述了问题和解决方案,在这里也可以


另外,请检查此选项,它有指向其他可能解决方案的链接。

此选项是否适用于非IE浏览器。我在Firefox中尝试了这一点,但失败了。这在非IE浏览器中有效吗。我尝试了这个,但在Firefox中失败了