2

$.validator setDefaults メソッドを呼び出して jQuery Validation プラグインのデフォルトを設定すると、errorPlacement メソッドは正常に実行されますが、invalidHandler 関数は完全に無視されますか?? なんで?

このインスタンスでは jQuery UI タブを使用しており、完全なフォーム .validate() 呼び出しではなく、.valid() 呼び出しで (フォーム内の) タブの個々のフィールドを検証していることに注意してください。

どんな洞察も大歓迎です。

以下の簡略化されたコード:

(function( $ ) {
    //det up some site wide validator defaults
    $.validator.setDefaults({
        invalidHandler: function(error, validator) {
            console.log("InvalidHandler Test");
        },
        errorPlacement: function(error, element) {
            error.appendTo("#error_validation span#errorSummary");
            $("#error_validation").show();
        }
    });
    //small jQuery plugin for error handling in a jQuery UI tab
    //by http://bit.ly/bhH1n1
    $.fn.validateTab = function () {
        var isValid = true;
        $(this).find("input, select").each(function () {
            if (isValid) {
                isValid = $(this).valid();
            } else {
                $(this).valid();
            }
        });
        return false;
    };


    $('#tabs').tabs();

    $('#addUserBtn').click(function (e) {
        e.preventDefault();
        $("#addUser").validateTab();
    });

});
4

1 に答える 1