2016-09-15 139 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