2011-10-06 8 views
5

Tengo una función jQuery que me gustaría ejecutar solo si la validación del formulario es verdadera
Tengo la validación y otras jQuery funcionan bien.
el problema ahora es que tanto la validación como otras funciones se están ejecutando al mismo tiempo.
Me gustaría ejecutar la otra función solo si la validación del formulario es verdadera. aquí es mi guiónjQuery Si myform.valid() es verdadero, ¿activa otra función jQuery?

<script> 
      $(document).ready(function() { 
       $.validator.addClassRules({ 
        fileName: { 
         required: true 
        } 
       }); 
       $("#myform").validate(); 
       if ($("#myform").valid()) { 
        $(function() { 
         $('#myform').submit(function() { 
          var cboxes = ($('input:checkbox:checked').filter(":checked").length); 
          var nboxes = ($(":checkbox:not(:checked)").length); 
          if ((cboxes > 0) && (nboxes > 0)) { 
           confirm('You have Checked only few locations among the List. \n Are you sure, you do not want to Prescribe from the other locations? '); 
          } else if (cboxes == 0) { 
           alert('Please select atleast One Address \n Where you would prefer to prescribe from.'); 
           return false; 
          } 
          else { 
           return true; 
          } 
         }); 
        }); 
       } 
      }); 
</script> 

aconsejar por favor cómo puedo hacer esto?

+0

Cuál es su código hasta ahora? Publica piezas relevantes y ya veremos. –

Respuesta

3

Si está utilizando standard plugin, dicho código debe ser apoyado:

$(document).ready(function() { 
    $("#myForm").validate({ 
     submitHandler: function(form) { 
      SomeFuncHere(); 
     } 
    }); 
}) 

El código en submitHandler debe ser llamado después de la validación exitosa.

Editar: basado en su código, prueba este lugar:

$("#myform").validate({ 
    submitHandler: function(form) { 
     var cboxes = ($('input:checkbox:checked').filter(":checked").length); 
     var nboxes = ($(":checkbox:not(:checked)").length); 
     var flag = false; 
     if ((cboxes > 0) && (nboxes > 0)) { 
      flag = confirm('You have Checked only few locations among the List. \n Are you sure, you do not want to Prescribe from the other locations? '); 
     } else if (cboxes == 0) { 
      alert('Please select atleast One Address \n Where you would prefer to prescribe from.'); 
     } 
     else { 
      flag = true; 
     } 
     return flag; 
    } 
}); 
+0

Pude elegir sus sugerencias, así que pegué mi script para ayudarme a mejorar – HaBo

+0

Ver mi edición ahora. –

+0

Muchas gracias funcionó perfectamente – HaBo

5

Si estás usando el plugin de jQuery valida entonces el método valid() devuelve un booleano para indicar si o no la forma valida correctamente, por lo que sólo se podía hacer:

if ($("#myform").valid()) { 
    CallSomeOtherFunction(); 
} 
+0

Pude elegir sus sugerencias, así que pegué mi script para ayudarlo a mejorar – HaBo

1

Usted tiene que usar .validate().form()

if (!$("#myform").validate().form()) { 
    return false; //doesn't validate 
}else 
{ 
    //form is validated do your work 
} 
Cuestiones relacionadas