更改 asp 按钮行为

Posted

技术标签:

【中文标题】更改 asp 按钮行为【英文标题】:change the asp button behaviour 【发布时间】:2021-12-07 07:41:54 【问题描述】:

当使用 ASP.NET Web 应用程序 (.NET Framework) 模板创建表单时,我有一个包含字符串和 2 个按钮的 TextBox,一个重置表单并提交表单...填写表单时,“reset”按钮的工作方式与“submit”按钮相同,因为如果用户单击重置按钮时文本框为空,则会触发“必需”标签。我似乎无法让按钮行为正常工作。

有没有办法设置“reset”按钮不触发文本框“required”标签?

我的代码示例;

<h3>Account Number</h3>
<asp:TextBox ID="AccountNumber" name="AccountNumber" MaxLength="18" placeholder="2347655454" required="required" runat="server" Width="300px" Height="40px" Font-Size="Large"></asp:TextBox>
<br />
<asp:Button ID="Button1" runat="server" Text="Reset Form" Width="300" Height="50px" Font-Bold="True" BorderColor="Black" BorderStyle="Solid" BorderWidth="2px" ForeColor="Black" OnClick="reset_Click" />
<br />
<asp:Button ID="Button2" runat="server" Text="Submit Form" Width="300" Height="50px" Font-Bold="True" BorderColor="Black" BorderStyle="Solid" BorderWidth="2px" ForeColor="Black" OnClick="Mong_Click" />

【问题讨论】:

为什么不直接使用标准的 html 这样就不会触发表单发布。你仍然可以使用 CSS 来设置样式。 发生此行为是因为您在单击任何按钮时执行回发。这会导致所需的标签被触发。您可以尝试将文本框的 ReadOnly 属性设置为 false。 @davidP 在表单中还有一个 @Proliges 刚刚尝试了 ReadOnly 属性选项,仍然得到相同的行为。 【参考方案1】:

为什么要使用必需的标签?只需将逻辑放入您的按钮代码中即可。

if (Textbox1.Text == "") 
   // logic here to tell user they have to enter some data
   // you can even use registerscript and pop open a client side
   // dialog
   return
  

所以,既然在 99% 的情况下,我们假设会输入一些文本,那么在事情的范围内遭受一次千载难逢的回帖应该并不重要,不是吗?

我只是将逻辑放在按钮事件代码中,并不太担心这些。

【讨论】:

以上是关于更改 asp 按钮行为的主要内容,如果未能解决你的问题,请参考以下文章

如何更改键盘完成按钮的行为?

如何在不影响密码更改行为的情况下正确防止 ASP.NET Identity 2.2.1 中的多个活动会话?

如何更改 QDialog 中的默认按钮行为

Word VBA:在选择更改时使 IRibbon 无效(实现粗体切换按钮的行为)

在第二次按下时更改标签栏按钮的行为

如何更改 Web Api Core 未经授权的行为