El complemento jQuery Validation no se validará cuando esté en el controlador de eventos click de

$("#tournamentDesignTabs").tabs(); $("#tournamentDesign").validate(); $("#createTournament").click(function(){ if($("#tournamentDesign").validate()){ $.post( "createTournament.php", {tournamentName: $("#tournamentName").val(), district: $("#district").val(), region: $("#region").val(), location: $("#location").val(), date: $("#date").val(), time: $("#time").val(), logo: $("#logo").val()}, function(responseText){ $("#result").html(responseText); }, "html" ) } else { alert("oh no"); } } ); 

Así que arriba está el script que estoy usando para validar parte de la información del formulario y luego ingresarlo en una base de datos. El problema que estoy enfrentando es que la función de validación no parece hacer nada cuando está conectada al manejador de eventos click del tramo. También noté que onfocusout tampoco parece comportarse correctamente. Cualquier sugerencia o idea sobre lo que estoy haciendo mal. Sé que tengo el complemento incluido correctamente porque la función de validación todavía funciona cuando envío el formulario. Yo preferiría ajax sin embargo. ¡Gracias!

EDITAR: Como dice una respuesta a continuación, piensan que tener el html ayudaría, así que aquí está la página. Hasta el último bit de código y contenido. Sé que es sucio y sucio, pero estoy aprendiendo y lo limpiaré pronto. De todos modos aquí está:

    Tournament Designer          
Tournament Designer

Enter the details concerning the tournament name, location, date, etc. here.
(* denotes a required field)

Tournament Name:*
District: Provo SLC *
Region: West-USA *
Location:*
Date:*
Time:*
Logo:*AddRemove

Set the pricing structure here. You can add as many structures as you like. To remove a structure select it in the textbox below including the comma and delete it.

# of Divisions: Price:Add
Pricing Structures:

Add Promo Codes Here. A valid Promo Code will contain any character between AZ and 0-9. When creating a Promo Code you can set it to discount by a percentage or fixed dollar amount. Percentage is selected by default. To remove a promo code follow the same steps as above.

Promo Codes:
Code: Discount(Percent[%] or Dollars[$]): Add

Skill & Weight Divisions

Enter Top Level Divisions Here:+

Mat Design

Add Mat Area With 4 mats. Add
I'm here! $("#tournamentDesignTabs").tabs(); //$("#tournamentDesign").validate(); $("#createTournament").click(function(){ if($("#tournamentDesign").validate()){ $.post( "createTournament.php", {tournamentName: $("#tournamentName").val(), district: $("#district").val(), region: $("#region").val(), location: $("#location").val(), date: $("#date").val(), time: $("#time").val(), logo: $("#logo").val()}, function(responseText){ $("#result").html(responseText); }, "html" ) } else { alert("oh no"); } } );

.validate() es lo que inicializa el complemento Validation en su form .

.valid() devuelve true o false dependiendo de si su formulario es actualmente válido.

Entonces usaría .valid() , no .validate() , dentro de una statement if para probar si la forma es válida …

 $("#tournamentDesign").validate(); $("#createTournament").click(function(){ if($("#tournamentDesign").valid()){ ... 

Consulte docs.jquery.com/Plugins/Validation/valid para obtener más información.