asp.net面板默认按钮不工作

本文关键字:工作 默认按钮 net asp | 更新日期: 2023-09-27 18:26:50

我目前在asp.net页面上有两个面板。我有一个登录和注册面板,并为每个面板设置了DefaultButton="btn1属性。如果你完成了任一表单(并专注于该表单),它总是会触发注册按钮,这是页面上的第一个按钮/面板。下面是我的代码:

<asp:Panel runat="server" ID="pnlRegister" DefaultButton="btn1">
    <asp:TextBox runat="server" TextMode="Email" ID="txtEmail" placeholder="Email" ValidateRequestMode="Enabled" />
    <asp:TextBox runat="server" TextMode="Password" ID="txtPass" placeholder="Password" /> <br /><br />
    <asp:Button runat="server" ID="btn1" OnClick="Register" Text="Register" />
</asp:Panel>
<asp:Panel runat="server" ID="pnlLogin" DefaultButton="btn2">
    <asp:TextBox runat="server" ID="txtEmailLog" placeholder="Email Address" /> <br />
    <asp:TextBox runat="server" TextMode="Password" ID="txtPassLog" placeholder="Password" /> <br /> <br />
    <asp:Button runat="server" ID="btn2" OnClick="Login" Text="Login" />
</asp:Panel>

编辑详细信息:

没有错误,它只是没有按预期工作。DefaultButton属性应该在键入"enter"时提交默认按钮,同时将焦点集中在面板内的字段上。例如,当尝试使用pnlLogin面板上的登录框并按enter时,会提交btn1按钮(即注册功能),而不是btn2按钮(即登录功能)。

我希望这有助于消除混乱,而不是增加混乱。

asp.net面板默认按钮不工作

将按钮更改为:

<asp:Button runat="server" UseSubmitBehavior="true" ID="btn1" OnClick="Register" Text="Register" />
<asp:Button runat="server" UseSubmitBehavior="true" ID="btn2" OnClick="Login" Text="Login" />

UseSubmitBehavior使您的按钮对与代码对应的提交操作(单击回车)做出反应,现在您的代码按浏览器的默认样式进行反应。

希望能有所帮助。

这不是一个解决方案,我仍在寻找,但为了绕过这个问题,我最终隐藏了其中一个面板,并根据用户想要完成的功能在表单之间切换。如果我找到更好的解决方案,我会在这里发帖。