Функция обратного вызова проверки jQuery - PullRequest
7 голосов
/ 03 июня 2011

В настоящее время у меня есть форма в рамке лайтбокса на моей веб-странице. Когда пользователь отправляет форму с недопустимыми данными, в верхней части формы появляется div со списком ошибок формы. Проблема в том, что мне нужен своего рода обратный вызов проверки jQuery, чтобы изменить размер лайтбокса после появления ошибки div. Насколько я знаю, с лайтбоксом jQuery сделать это невозможно.

Ответы [ 2 ]

19 голосов
/ 04 июня 2011

Вы должны предоставить недопустимую функцию обратного вызова, которую вы можете найти , документированную здесь , вот так

$(".selector").validate({
    invalidHandler: function(form, validator) {
        var errors = validator.numberOfInvalids();
        if (errors) {
            //resize code goes here
        }
    }
})
3 голосов
/ 19 марта 2016

В качестве альтернативы, вы можете использовать функцию обратного вызова errorPlacement, чтобы воздействовать на конкретный элемент, который не прошел проверку. В качестве примера приведенный ниже код использует обратный вызов errorPlacement для установки класса тега div каждого недопустимого родительского элемента формы в значение «error», а затем удаляет класс «error» после прохождения элемента проверки:

form.validate({
        rules: {
            Name: {
                required: true
            },
            Email: {
                required: true
                , regex: "^[0-9a-zA-Z.+_\-]+@{1}[0-9a-zA-Z.+_\-]+\\.+[a-zA-Z]{2,4}$"
            }
        },
        messages: {
            Name: {
                required: "Please give us your name"
            },
            Email: {
                regex: "Please enter a valid email address"
            }
        },

        errorPlacement: function(error, element) {
            element.parent().addClass("error");
        },

        success: function(element) {
            $("#" + element.attr("for")).parent().removeClass("error");
        }
    });
...