jQuery Validator не работает, если поля не отображаются - PullRequest
1 голос
/ 23 февраля 2012

Все, Я использую Wordpress и использую некоторые шорткоды для отображения функций переключения. Темой, которую я использую, является Mingle, и пример функции переключения можно найти здесь:

http://themeforest.net/item/mingle-multipurpose-wordpress-theme/full_screen_preview/235056

Вы можете нажать на Shortcodes -> Tabs and Toggles

Это отлично работает, и у меня есть форма с некоторыми полями. Если тумблер открыт, то jQuery Validator работает нормально. Однако, если переключатели закрыты, jQuery не распознает наличие в них полей и не проверяет, имеют ли они значение. Есть ли обходной путь для этого?

РЕДАКТИРОВАТЬ: Вот мой текущий JQuery:

$("#register").validate({
    ignore: "",
    rules: {
        vendor_email: {
            required: true,
            email: true
        },
        vendor_name: "required",
        zip: "required",
    },
    messages: {
        vendor_email: {
            required: "<br>Please enter an email address!<br><br>",
            email: "<br>Please enter a valid email address!<br><br>"
        },
        vendor_name: "<br>Please enter your vendor name!<br><br>",
        zip: "<br>Please enter a zip code!<br><br>",
    },
    highlight: function(element, errorClass) {
        alert(element);
        $(element).closest('togDesc').show();
        $(element).closest('toggleItem').find('.minus').removeClass('minus').addClass('plus');
    });
});

Часть выделения вызывает ошибку и ничего не может быть проверено. Есть идеи почему?

Заранее спасибо!

1 Ответ

2 голосов
/ 23 февраля 2012

По умолчанию проверка jQuery игнорирует скрытые поля.Измените игнорирование на пустое:

$("#form").validate({
    ignore: "",
    ...
});

Если эти элементы скрыты, вы можете программно переключать их родительский открытый режим:

$("#form").validate({
    ignore: "",
    highlight: function(element, errorClass) {
        $(element).addClass(errorClass);
        if(!$(element).is(":visible")) {
            $(element).closest('togDesc').show();
            $(element).closest('toggleItem').find('.minus').removeClass('minus').addClass('plus');
        }
    });
}

Может быть встроенная функция для переключения этогооткройте в смешивании, но это также должно быть сделано.

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