2011-01-21 21 views
5

Estoy usando el jQuery Form Wizard 3.0.4 plugin para un proceso de registro en varios pasos. Utiliza el plugin jQuery validator incorporado, que funciona bien cuando se va de un paso a otro. EDIT: Esto significa que ya estoy usando validationEnabled: true, formOptions y validationOptions, y estos están funcionando. Necesito ejecutar esta misma validación fuera de la funcionalidad habitual.Cómo ejecutar jquery validate() al usar el asistente de formulario?

El problema es que necesito ejecutar el validador y mostrar los errores manualmente en dos puntos. Para un campo especial que tengo, y antes de una presentación de AJAX. He intentado lo siguiente, que no hace nada:

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

El guión forma asistente (jquery.form.wizard-3.0.4.js) parece estar haciendo esto cuando se va al siguiente paso:

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

Así que probamos este, que también no hace nada:

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

¿Alguna idea?

  1. ¿Cómo puedo ejecutar la misma validación que se produce cuando hago clic en el siguiente paso?
  2. ¿Cómo puedo llamar a una función que valida y muestra errores para un campo específico?
+0

¿Es posible y factible usar el complemento jquery formwizard en las páginas JQM? Si es así, ¿será demasiado pesado para la página móvil? – Raman

Respuesta

3

Creo que el código de ejemplo a continuación probablemente debería funcionar para usted, la validación se activa cuando se hace clic en el botón o elemento con id = "validate_form". Este es básicamente el código que se ejecuta (en el complemento) cuando el usuario hace clic en siguiente.

$(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 
      } 

     }) 
    }) 

Si sólo se necesita para validar un campo de entrada única Posteriormente, se podría utilizar el siguiente código (el botón con id = "validate_email" se hace clic en este caso):

$(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 
      } 

     }) 
    }) 

Esperanza esta ayuda

/Jan

0

¿Has consultado la documentación del complemento? Hay un simple cambio en la configuración que le permitirá hacer ese tipo de validación cuando defina su asistente de formularios.

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

A continuación, haga clic en "Opciones" y mire el 'validationEnabled' para activar la validación y luego ver '' validationOptions para configurar sus opciones.

+0

Sí, ya lo estoy haciendo: "Utiliza el plugin jQuery validador integrado, que funciona bien cuando se va de un paso a otro". – jwinn

Cuestiones relacionadas