Настройка делегатов событий в плагине проверки jQuery

Я в настоящее время настраиваю плагин проверки jQuery для использования в нашем проекте.

По умолчанию существуют некоторые события, автоматически настроенные для обработки. Т.е. фокус в/, настроите события на всей проверке огня исходных данных. Я хочу, чтобы это только стреляло, когда кнопка отправки нажата.

Эта функциональность, кажется, встроена в плагин, который мешает делать это (не изменяя сменный код, Не, Что я Хочу Сделать).

Я нашел eventDelegate вызовы функции в сменном опытном методе кода:

        $(this.currentForm)
            .validateDelegate(":text, :password, :file, select, textarea", "focusin focusout keyup", delegate)
            .validateDelegate(":radio, :checkbox, select, option", "click", delegate);

Когда я удаляю эти строки из плагина, я получаю свой результат, однако я очень сделал бы что-то Вне плагина для достижения этого.

Кто-либо может помочь мне? При необходимости еще в деталях сообщите мне. Я искал Google с небольшим успехом.

Спасибо

Править: Я в основном пытаюсь проверить форму Только, когда отправлять событие запущено. По умолчанию плагин проверяет каждый раз, когда фокус потерян в элементе управления вводом.

7
задан Dr Blowhard 11 February 2013 в 14:33
поделиться

1 ответ

Нашел ответ. Он был (спрятан?) Как часть параметров метода проверки.

См. Параметры onfocusout и т. Д. На этой странице: http://docs.jquery.com/Plugins/Validation/validate#options

, для которых я могу установить значение false.

Вот мой код, который устанавливает мой валидатор (надеюсь, другие сочтут это полезным):

$(document).ready(function() {
    $("form").each(function() {
        $(this).validate({
            validateDelegate: function() { },
            onsubmit: true,
            onkeydown: false,
            onkeyup: false,
            onfocusin: false,
            onfocusout: false,

            errorContainer: "#PanelError",
            errorLabelContainer: "#PanelError ul",
            wrapper: "li",
            ignoreTitle: true,
            errorClass: "Error",

            highlight: function(element, errorClass, validClass) {
                $(element).addClass(errorClass).removeClass(validClass);
                $(element.form).find("#" + element.id)
                        .addClass(errorClass);
            },
            unhighlight: function(element, errorClass, validClass) {
                $(element).removeClass(errorClass).addClass(validClass);
                $(element.form).find("#" + element.id)
                        .removeClass(errorClass);
            }
        });
    });
});
7
ответ дан 7 December 2019 в 07:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: