我使用reCaptcha + validation jQuery插件:
charAt
此代码几乎可以工作。几乎是因为if (typeof guess !== 'string' && guess.length !== 2) {
是异步运行的,并且在<script>
$('#contact_us-form').validate({
submitHandler: function(form) {
grecaptcha.execute(); //How to run this syncly?
$(form).ajaxSubmit({ ... }); // This request without token
}
});
</script>
<form>
...
<div class='g-recaptcha' ... />
</form>
提交表单数据之后才出现响应。
解决方法是为execute
分配ajaxSubmit
属性并将callback
移动到该回调中:
g-recaptcha
但这看起来很毛。此外,ajaxSubmit
无法使用var my_callback = function() {
$(form).ajaxSubmit({ ... });
}
<div class='g-recaptcha' data-callback='my_callback'/>
变量,因此我无法在类似形式之间重用此回调。
有没有一种方法可以同步form
?