I have an ASP.NET form that takes input from a user. There's a Submit button on the form and a button called Calc which does a calculation to populate a text field. The problem I'm having is that on the form I have a set of <ASP:REQUIREDFIELDVALIDATOR> validators and when the Calc button is pressed the form gets validated. I don't want the required fields to be validated when the Calc button is pressed, only the Submit button. Any way around this?
9 Answers
<asp:Button runat="Server" ... CausesValidation="False" />
Button.CausesValidation (If I remember correctly).
Comments
Try putting CausesValidation="false" as a button attribute.
Some sample code:
http://weblogs.asp.net/scottgu/archive/2005/08/04/421647.aspx
Comments
ASPX Page:
<asp:Button ID="buttonNew" runat="server" Text="New" CausesValidation="False" />
OR
CodeBehind Page: (.cs)
buttonNew.CausesValidation = false;
Check here to know more about Validated and Validating events for the controls.
Comments
Set the button.causesValidation to false.
However, if all it is doing is calculating something based on user input then you shouldn't have it posting back at all. I would recommend using an HTML button and attach some javascript to it to do your work for you and then you won't have this problem.
Comments
To disable validation in a specific control
Set the control's CausesValidation property to false.
<asp:Button id="Button3" runat="server"
Text="Cancel" CausesValidation="False">
</asp:Button>
To disable a validation control
Set the validation controls Enabled property to false.
To disable client-side validation
Set the validation controls EnableClientScript property to false.
Comments
These days (asp.net core version 8.0) just add the attribute formnovalidate to the button.
e.g.
<button asp-route-provider="MSEntraID" formnovalidate class="login-button ms-login">
<img src="~/images/MicrosoftIcon.svg" alt="Microsoft Logo" />
<span id="login-btn" style="display: inline-block;">Log in with Microsoft</span>
</button>
formnovalidateattribute as usual on the<button>directly.requiredproperty, you can useUseSubmitBehavior="false"on your button to prevent the required check.