Как запустить jquery validate () при использовании мастера форм? - PullRequest
5 голосов
/ 21 января 2011

Я использую плагин jQuery Form Wizard 3.0.4 для многоэтапного процесса регистрации. Он использует встроенный плагин валидатора jQuery, который отлично работает при переходе от шага к шагу. РЕДАКТИРОВАТЬ : Это означает, что я уже использую validationEnabled: true, formOptions и validationOptions, и они работают. Мне нужно запустить ту же проверку вне обычной функциональности.

Проблема в том, что мне нужно запустить валидатор и показать ошибки вручную в двух точках. Для специального поля у меня есть, и до подачи AJAX. Я пробовал следующее, которое ничего не делает:

$("#registrationForm").validate();  

Сценарий мастера форм (jquery.form.wizard-3.0.4.js), похоже, делает это при переходе к следующему шагу:

this.element.validate().focusInvalid();

Итак, я попробовал это, что тоже ничего не делает:

$("#registrationForm").element.validate().focusInvalid();

Есть идеи?

  1. Как запустить ту же проверку, которая происходит при нажатии следующего шага?
  2. Как бы я вызвал функцию, которая проверяет и показывает ошибки для определенного поля?

Ответы [ 2 ]

3 голосов
/ 05 февраля 2011

Я думаю, что приведенный ниже пример кода, вероятно, должен работать для вас, проверка запускается при нажатии кнопки или элемента с id = "validate_form".Это в основном код, который запускается (в плагине), когда пользователь нажимает следующее.

    $(function(){
        $("#validate_form").click(function(){ // when the button is clicked...
            var wizard = $("#demoForm"); // cache the form element selector
            if(!wizard.valid()){ // validate the form
                wizard.validate().focusInvalid(); //focus the invalid fields
            }

        })
    })

Если вам просто нужно проверить одно поле ввода, вы можете использовать следующий код (кнопка сid = "validate_email" в этом случае щелкается):

    $(function(){
        $("#validate_email").click(function(){ // when the button is clicked...
            var wizard = $("#demoForm"); // cache the form element selector
            if(!wizard.validate().element( "#myemail" )){ // validate the input field
                wizard.validate().focusInvalid(); // focus it if it was invalid
            }

        })
    })

Надеюсь, это поможет.

/ Jan

0 голосов
/ 21 января 2011

Вы смотрели на документацию плагина? В настройке есть простой переключатель, который позволит вам выполнять такую ​​проверку при определении мастера формы.

http://thecodemine.org/#_demoForm=first

Затем нажмите «Опции» и посмотрите на «validationEnabled», чтобы включить валидацию, а затем посмотрите на «validationOptions», чтобы настроить ваши опции.

...