Как запустить jquery validate() при использовании мастера форм?

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

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

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

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

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

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

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

Есть идеи?

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

person jwinn    schedule 21.01.2011    source источник
comment
Возможно ли и возможно ли использовать плагин jquery formwizard на страницах JQM? Если да, то не будет ли он слишком тяжелым для мобильной страницы?   -  person Raman    schedule 25.02.2012


Ответы (2)


Я думаю, что приведенный ниже пример кода, вероятно, должен работать для вас, проверка запускается при нажатии кнопки или элемента с 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
            }

        })
    })

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

/Ян

person Jan Sundman    schedule 05.02.2011

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

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

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

person Lance    schedule 21.01.2011
comment
Да, я уже это делаю: он использует встроенный плагин проверки jQuery, который отлично работает при переходе от шага к шагу. - person jwinn; 21.01.2011