Si encuentras algún fallo con tu código o trabajo, recuerda probar siempre en un ambiente de testing antes aplicar el código al trabajo final.
Solución:
Sé que esta pregunta está un poco anticuada, pero estaba teniendo el mismo problema y acabo de encontrar la solución. Puede hacer esto agregando un campo oculto junto al div reCaptcha, como:
luego en tu javascript:
$("#form").validate({
ignore: ".ignore",
rules:
name:
required: true,
minlength: 2
,
email:
required: true,
email: true
,
hiddenRecaptcha:
required: function ()
if (grecaptcha.getResponse() == '')
return true;
else
return false;
,(...rest of your code)
AVISO QUE DEBE TENER los ignore: ".ignore" en su código porque jquery.validate ignora los campos ocultos de forma predeterminada, sin validarlos.
Si desea eliminar el mensaje de error en la validación de reCapcha, agregue una devolución de llamada de datos al elemento reCapcha
Y luego en su archivo js agregue
function recaptchaCallback()
$('#hiddenRecaptcha').valid();
;
También puede evitar que el formulario se envíe en el submitHandler
Pero lo modifiqué un poco para usarlo yo mismo y estoy dispuesto a compartir el código para que otros lo usen.
Estaba trabajando en un formulario interactivo que se validaba a medida que completaba los pasos.
Se utilizó para pedir comida. Ergo, el formulario requería verificación y activación del botón de registro y está utilizando la última reCaptcha hasta la fecha (5/12/2016).
Además, este código maneja reCaptcha caducado, verificación del lado del servidor a través de ajax (masa no incluida; si alguien lo necesita, no dude en comentar mi respuesta y la editaré en consecuencia).