2012-02-23 2 views
1

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

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

Вы можете нажать на Shortcodes -> Вкладки и переключатели

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

EDIT: Вот мой текущий 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'); 
    }); 
}); 

Изюминкой часть вызывает ошибку и ничего не будет подтверждено. Любая идея почему?

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

ответ

2

По умолчанию проверка 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'); 
     } 
    }); 
} 

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

+0

большое спасибо! Это сработало отлично! Однако, только одно дополнительное наблюдение, так как эти поля могут быть скрыты, могу ли я выпустить предупреждение для всех полей, которые не прошли проверку? – user1048676

+0

См. Мое редактирование. Я бы отключил родительский элемент поля, если есть ошибка. Или вы можете добавить свой код предупреждения в код опции «highlight». –

+0

Спасибо за предложение. Я добавил свой полный код проверки jQuery. Если я добавлю раздел выделения, он вообще не выполняет проверку. – user1048676

Смежные вопросы