MVC3 jquery.validate.unobtrusive варианты переопределения без редактирования источника? - PullRequest
4 голосов
/ 30 марта 2012

просто интересно, есть ли способ переопределить параметры выделения и отмены выделения при использовании mvc3 jquery.validate.unobtrusive без редактирования исходного файла js ...

Я уже пробовал:

var elementToValidate = $(element);
        var form = $(element.form);
        if (form.length) {
            //elementToValidate.valid();
            form.validate({
                highlight: function (element, errorClass, validClass) {
                    $(element).removeClass(errorClass);
                    $(element).closest('td').addClass('alert-error error');
                }, unhighlight: function (element, errorClass, validClass) {
                    $(element).removeClass(errorClass);
                    $(element).closest('td').addClass('alert-error error');
                }
            });
        }

, но выделение и выделение не будут отменены, пока я не удалю ненавязчивую библиотеку из моих скриптов ..

Если я отредактирую источник jquery.validate.unobtrusive.js Кажется, он работает просто отлично:

function validationInfo(form) {
        var $form = $(form),
            result = $form.data(data_validation);

        if (!result) {
            result = {
                options: {  // options structure passed to jQuery Validate's validate() method
                    errorClass: "input-validation-error",
                    errorElement: "span",
                    errorPlacement: $.proxy(onError, form),
                    invalidHandler: $.proxy(onErrors, form),
                    messages: {},
                    rules: {},
                    success: $.proxy(onSuccess, form),
                    highlight: function (element, errorClass, validClass) {
                        $(element).removeClass(errorClass);
                        $(element).closest('td').addClass('alert-error error');
                    }, unhighlight: function (element, errorClass, validClass) {
                        $(element).removeClass(errorClass);
                        $(element).closest('td').addClass('alert-error error');
                    }
                },
                attachValidation: function () {
                    $form.validate(this.options);
                },
                validate: function () {  // a validation function that is called by unobtrusive Ajax
                    $form.validate();
                    return $form.valid();
                }
            };
            $form.data(data_validation, result);
        }

        return result;
    }

просто интересно, придумал ли кто-нибудь способ переопределить параметры без необходимости изменять источник ..

Приветствия

1 Ответ

0 голосов
/ 21 августа 2012

Вы можете изменить значения по умолчанию для валидатора jquery:

$.validator.defaults.highlight = function (element, errorClass, validClass) {
    $(element).removeClass(errorClass);
    $(element).closest('td').addClass('alert-error error');
};
$.validator.defaults.unhighlight = function (element, errorClass, validClass) {
    $(element).removeClass(errorClass);
    $(element).closest('td').addClass('alert-error error');
};

Выполните это перед выполнением события onload (т.е. не вызывайте это в $(document).ready(), а напрямую).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...