0

代码 :

<form id="form1" runat="server">
<div>
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
</div>
</form>

如果我单击输入字段并按 Enter,它不会提交任何内容。为什么?以及如何确定每个输入框按 Enter 键调用哪个页面?

4

3 回答 3

2

您设置表单默认按钮:

<form id="Form1"
    defaultbutton="SubmitButton"
    runat="server">

或者您可以在代码中执行此操作 - Page_load:

Page.Form.DefaultButton = btnSearch.UniqueID;

另一个有用的提示是您也可以设置default buttonon asp:panel。将您的“表单”包装到一个面板或多个面板中,这样您就可以设置多个submit按钮Panel Control

<asp:Panel runat="server" id="pnlForm1" DefaultButton="btnSubmit">
   <asp:Button runat="server" id="btnSubmit"/>
</asp:Panel>
于 2012-05-18T13:03:56.590 回答
1

您可以将两个框放在单独的面板中,并为每个面板设置 DefaultButton。

如果您使用 Button,则更新DefaultButton 将起作用,LinkBut​​ton 仅在 IE 中起作用,有一些解决方法:

在 asp.net 中将链接按钮设置为 asp:panel 的默认按钮

asp.net 中可重用的 Page_PreRender 函数

于 2012-05-18T13:01:37.360 回答
1

使用 Jquery 来解决它:

$(document).ready(function () {
    $('body').bind('keypress', function (e) {
        var code = (e.keyCode ? e.keyCode : e.which);
        var button = $("#<%= SubmitButton.ClientID %>");
        if (button != null && code == 13) {
            button.click();
        }
    });
})

或在 C# 中

Page.Form.DefaultButton = SubmitButton.UniqueID;

HtmlForm.DefaultButton 属性

在 ASP.NET 中使用 Panel.DefaultButton 属性和 LinkBut​​ton 控件

于 2012-05-18T13:13:55.997 回答