Javascript – run some custom script after ASP.NET client side page validation fails

asp.netjavascript

I'm trying to run some client side script if, and only if, the client side Page validation fails, and can't figure out where I can hook it in.

If i bind my JavaScript function to the OnClientClick of the button that submits the form, it runs before the client side validation. If I bind it to the OnSubmit of the form, that only fires if the validation passes.

Any ideas of how or where I can hook something like this up? Or if you have other suggestions, I'm open to them.

<form id="frm" runat="server" 
     onsubmit="FUNCTION HERE WONT FIRE IF VALIDATION FAILS">
<asp:requiredfieldvalidator id="vld" runat="server" controltovalidate="txt"/>
<asp:textbox id="txt" runat="server"></asp:textbox>

<asp:button id="cmd" runat="server" OnClick="dosomething"
     OnClientClick="FUNCTION FIRES BEFORE VALIDATION OCCURS">

</form>

Best Answer

Add script below at the end of page's markup file:

var originalValidationFunction = Page_ClientValidate;
if (originalValidationFunction && typeof (originalValidationFunction) == "function") {
    Page_ClientValidate = function (validationGroup) {
        originalValidationFunction(validationGroup);

        if (!Page_IsValid) {
            // your code here
            alert("oops!");
        }
    };
}
Related Topic