2

I'm working on a client validation in my ASP.NET MVC 4 application. I'm trying to override default validation summary from unobtrusive jquery validation. There's a method "OnErrors", which I need to override. I found a solution, but for me it works only with single errors. Here is the code:

$(function () {   
var settings = $.data($('form')[0], 'validator').settings;

var oldErrorFunction = settings.errorPlacement;
var oldErrorsFunction = settings.invalidHandler;
var oldSucessFunction = settings.success;


settings.invalidHandler = function (form, validator) {        
    alert("Form is invalid");
    oldErrorsFunction(form, validator);
}

settings.errorPlacement = function (error, inputElement) {
    $(".validation-summary-errors").append("single error ");
    var errorsNumber = 0;
        $(".validation-summary-errors li").each(function () {
            errorsNumber++;        
        });              
    oldErrorFunction(error, inputElement);        
}    
settings.success = function (error) {
    oldSucessFunction(error);
}

});

errorPlacement (for every single error) works well , but invalidHandler (for all errors at once) never fires.

How would you handle this? Thanks

1 Answer 1

3

We have this working for us:

form.unbind("invalid-form.validate", form.validate().settings.invalidHandler); // Unbind the existing invalidHandler
form.validate().settings.invalidHandler = $.proxy(customValidationSummary, form); // Replace invalidHandler with a custom one
form.bind("invalid-form.validate", form.validate().settings.invalidHandler); // Rebind the new invalidHandler
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.