2016-09-15 140 views
-1

我想单击gcapcha时提交表单。我试着用我知道的(我愚蠢的)jquery函数提交。但这不起作用。通过回调提交表单与ajax

这是我的代码(它有什么问题)。 的Javascript

var verifyCallback = function(e) { 
document.getElementById("form-contact").submit(); 
$.ajax({ 
    type : 'POST', 
    url : 'inc/contact_sent.php', 
    data : $(this).serialize(), 
     success : function(data){ 
      $("#contact").html(data); 
     } 
    }); 
return false; 
}; 
var onloadCallback = function() { 
    grecaptcha.render("captcha", { 
     sitekey: "xxx", 
     callback: verifyCallback 
    }) 
}; 

HTML

<div id="contact" class="contact-form"> 
    <form class="ajaxForm detailedsearch inline-style" method="post" id="form-contact"> 
     <input type="text" class="form-control" name="cntc_name" placeholder="Your name" required>  
     <input type="email" class="form-control" name="cntc_email" placeholder="Your email" required> 
     <input type="text" class="form-control" name="cntc_tel" placeholder="Your phone">  
     <input type="text" class="form-control" name="cntc_subj" placeholder="Subject" value="<?=(isset($_POST['ptitle']))?"Queries for $_POST[ptitle]":""?>" required>  
     <textarea class="form-control" name="cntc_desc" rows="6" placeholder="Your Detail" required></textarea> 
     <div class="form-group">      
      <div id="captcha" class="center-captcha"></div> 
      <div id="gcaptcha" style="transform:scale(0.50);-webkit-transform:scale(0.50);transform-origin:0 0;-webkit-transform-origin:0 0;"></div> 
      <span class="text-danger">*Please complete the form to proceed.</span> 
     </div> 
     <!-- <button type="submit" class="btn btn-success btn-block"><i class="fa fa-envelope-o"></i>&nbsp;Submit Form</button> --> 
    </form> 
</div> 
+0

你能提供你的''

代码? –

+0

存在回调:verifyCallback将始终返回FALSE bcoz返回false;在函数中为什么? – Gopalakrishnan

+0

@PraneshRavi,请参阅更新。谢谢。 – Wilf

回答

0

你应该这样做....

//register a event for form submit 
$("form").submit(function(e) { 
    e.preventDefault(); 
    $.ajax({ 
    type : 'POST', 
    url : 'inc/contact_sent.php', 
    data : $(this).serialize(), //serialize the form data 
    success : function(data){ 
     $("#contact").html(data); 
    } 
    }); 
}); 

var verifyCallback = function(e) { 

//submit form 
$("#form-contact").submit(); 

return false; 
}; 

var onloadCallback = function() { 
    grecaptcha.render("captcha", { 
     sitekey: "xxx", 
     callback: verifyCallback 
    }) 
}; 
+0

感谢您的回复。但不是在阿贾克斯做。它提交表单并刷新整个页面,而不发送'#form-contact'中的值。是否有任何代码在'$ .ajax'中提交表单? – Wilf

+0

@Wilf更新了答案。从表单中删除'method'属性。 –

+0

你的代码正在工作!非常感谢你。 – Wilf