2

ASP.NET MVC 4 アプリケーションでクライアントの検証に取り組んでいます。目立たない jquery 検証からデフォルトの検証概要をオーバーライドしようとしています。オーバーライドする必要があるメソッド「OnErrors」があります。私は解決策を見つけましたが、私にとっては単一のエラーでしか機能しません。コードは次のとおりです。

$(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 (すべてのエラーに対して) はうまく機能しますが、invalidHandler (一度にすべてのエラーに対して) は起動しません。

これをどのように処理しますか?ありがとう

4

1 に答える 1

3

これは私たちのために働いています:

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
于 2013-08-05T15:51:49.753 に答える