如何修改ASP.NET Button行为 使重置按钮不触发required校验
解决方案
该问题的成因是ASP.NET默认的asp:Button控件渲染后对应的HTML标签类型为submit,点击时会先触发浏览器内置的表单校验规则,所以会命中TextBox上设置的required校验。你可以根据自身业务场景选择以下两种方案解决:
方案1:仅需前端清空表单,不需要调用后端重置逻辑
如果你不需要执行reset_Click对应的后端代码,只是要清空表单内容,直接修改重置按钮的属性即可:
<asp:Button ID="Button1" runat="server" Text="Reset Form" Width="300" Height="50px" Font-Bold="True" BorderColor="Black" BorderStyle="Solid" BorderWidth="2px" ForeColor="Black" UseSubmitBehavior="False" OnClientClick="this.form.reset();return false;" />
核心属性说明:
UseSubmitBehavior="False":指定按钮不使用浏览器的提交行为OnClientClick中的代码会直接触发浏览器原生表单重置操作,return false会阻止按钮的默认提交行为,完全不会触发任何校验逻辑
方案2:需要调用后端reset_Click逻辑处理
如果你需要在点击重置按钮时执行后端代码做额外的业务处理,给重置按钮添加两个属性即可:
<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" CausesValidation="False" formnovalidate="formnovalidate" />
核心属性说明:
CausesValidation="False":ASP.NET原生属性,关闭服务端的校验逻辑formnovalidate="formnovalidate":HTML5原生属性,关闭浏览器端的表单校验(包括你设置的required规则),点击后会直接提交表单执行后端重置逻辑,不会触发校验提示
内容的提问来源于stack exchange,提问作者w4dd325
相关产品推荐
相关产品推荐

