2017-05-10 68 views
0

我试图使用谷歌隐形reCAPTCHA与AJAX。但是,返回虚假不起作用。JavaScript返回false不起作用

JS:

function onSubmit(token) { 
     var siteurl= 'http://localhost/test/'; 
     document.getElementById("register").submit(); 
     var formdata = $('.register').serialize(); 
     $.ajax({ 
       method: "POST", 
       url: siteurl+"app/ajax/test.php", 
       data: formdata 
      }) 
      .done(function(msg) { 
       alert(msg); 

      }); 
     return false 
    } 

HTML:

<form id="register" action="" method="post" class="register"> 
<input class="for-1" type="text" name="field" > 
<input class="g-recaptcha" data-sitekey="6LfCqCAUAAAAAAjaAg5w_mHK" data-callback='onSubmit' type="submit" value="Submit"> 
</form> 

这个代码工作很好,但不会返回false。 iam等待帮助, 谢谢。

+3

'FALSE'将是甚至在完成AJAX之前返回...您希望它返回到哪里? –

+0

如果您想在您的ajax – Beginner

+0

iam中使用结果,则不需要在此页面上重新加载,您必须通过回调。一切工作完成后,它应该是错误的。 – mkrts

回答

0

那么,如果你wan't避免当表单提交

重装页,我建议你使用这个流程

1 - >data-callback='onSubmit'属性是不再需要

2 - >删除功能onSubmit并将其替换为事件收听者

如果您的表单寄存器正在提交,此代码将侦听

$(document) 
    .off('submit', '.register') 
    .on('submit', '.register', function(e) { 
     /** Do what you want when submitting the form **/ 
     var siteurl= 'http://localhost/test/'; 
     var formdata = $('.register').serialize(); 
     $.ajax({ 
       method: "POST", 
       url: siteurl+"app/ajax/test.php", 
       data: formdata 
      }) 
      .done(function(msg) { 
       alert(msg); 

      }); 

     /** prevent form from submitting to your form action page **/ 
     e.preventDefault(); 
    }); 

3 - >因为你的表单已经提交

e.preventDefault();这行做的是它会阻止从形式提交表单操作页面也document.getElementById("register").submit();删除此

+0

非常感谢,但是当我删除onSubmit,并将其替换为事件监听器,如您所说,表单完全不工作.. – mkrts

+0

让我们继续这里http://chat.stackoverflow.com/rooms/143820/javascript-return-假不工作 – Beginner

+0

iam在stackoverflow非常新,所以我没有权限使用聊天室 – mkrts