首先我对javascript和jquery没有太多经验:)我只是想找到一个快速的方法来连接jquery email验证器模块和一个检查recaptcha的函数。这是我的代码:
jQuery.validator.setDefaults({
debug: true,
success: "valid"
});
$( "#myform" ).validate({
rules: {
field: {
required: true,
email: true
}
}
});
工作正常!输入已经过验证。
现在验证后我需要两件事:首先我需要调用recapVerify(),在recaptcha得到验证后我需要提交我的表单。这是我使用的示例:email method。我知道我现在需要使用submitHandler,但我无法弄清楚在哪里以及如何使用?
顺便说一下。这是我想要使用的recapVerify()函数:
function recapVerify(){
$.ajax({
type:'post',
url: 'captcha_check.php',
data: {
recaptcha_challenge_field:$('#recaptcha_challenge_field').val(),
recaptcha_response_field:$('#recaptcha_response_field').val()
}
}).done(function(data, textStatus, jqXHR){
if (data == 'success'){
$('#err').addClass('hidden');
//document.forms[0].submit(); // uncomment this line to submit your form
alert('Success, the form and reCAPTCHA validated, your form was submitted');
} else {
$('#err').removeClass('hidden');
}
}).fail(function(jqXHR,textStatus,errorThrown){
console.log('recaptcha or service failure');
});
}
答案 0 :(得分:1)
在jquery验证函数上使用submitHandler。不需要调试。从本质上讲,这是您需要的JavaScript。
$(document).ready(function(){
$("#test-form").validate({
rules: {
name: {
required: true,
},
email : {
required : true,
email : true
}
},
submitHandler : recaptchaVerify
});
});
function recaptchaVerify(form){
console.log(form);
alert("in submit handler");
}
根据jQuery验证的文件
submitHandler(默认:本机表单提交)
类型:功能()
在表单有效时回调处理实际提交。获取表单 作为唯一的论点。替换默认提交。正确的地方 在验证后通过Ajax提交表单。
还创建了fiddle,以便您可以使用它。