validación jquery onclick

Tengo un problema con el complemento de validación jquery que no tiene sentido para mí. Por favor, ¿alguien puede ver dónde está mi error?

Aquí está mi HTML:

    Save 

Aquí está mi JS

    $('#link').click(function() { $('#form').validate(); if ($('#form').valid()) // check if form is valid { // do some stuff } else { // just show validation errors, dont post } });  

El formulario nunca se valida o al menos la función .valid() siempre devuelve true pero no puedo ver por qué. Usé el complemento de validación durante años pero no en este contexto.

Si tiene un enlace y necesita validar un formulario. También esta función va a la siguiente pestaña en UI Pestañas validando cada pestaña con un formulario en cada pestaña.

 $('.next-tab').click(function() { //if form is valid if ($("#frmSignup").valid()) { //activate next tab $('#signuptabs').tabs('enable', $(this).attr("rel")); //switch to next tab $tabs.tabs('select', $(this).attr("rel")); return false; } }); 

Resuelto por ahora. Ahora el validador hace lo que quiero. JS abajo, mismo HTML:

 $(function() { $('#link').click(function() { if ($("input[name=name]").valid() && $("input[name=email]").valid()) { // do some stuff } else { // just show validation errors, dont post } }); }); 

Está intentando adjuntar un evento a un elemento que aún no se ha renderizado

tienes que usar el onDOM listo

 $(function() { $('#link').click(function(){ $('#form').validate(); if ($('#form').valid()) // check if form is valid { // do some stuff } else { // just show validation errors, dont post } }); }); 

$(functionHandler) == $(document).ready(functionHandler);

Regla No.1 : siempre piense, si el DOM debe procesarse antes de la parte del código que escribe, es el error más común en este sitio …

Este consejo y muchos más que puedes leer en la etiqueta jquery en este sitio, léelo

Debe poner su validación en un “documento listo”

 $(document).ready(function(){ $('#form').validate(); });