2017-04-27 168 views
0

我想將表單回覆發送給Google工作表,然後將用戶重定向到感謝頁面。 Google腳本將用戶直接重定向到報告頁面。我想放棄谷歌重定向並將我的地方。使用ajax重定向表單提交

形式:

<form method="post" id="formID" action="gscript"> 
... 
</form> 

腳本:

<script> 
    $(document).on('submit', '.formID', function(e) { 
    $.ajax({ 
     url: $(this).attr('action'), 
     type: $(this).attr('method'), 
     data: $(this).serialize(), 
     success: function(html) { 
     alert('ok'); 
     window.location("Thanks page link"); 
     } 
    }); 
    e.preventDefault(); 

}); 
</script> 
+1

不應該'.formID'是'#formID'? – manelgarcia

+0

對,它應該x) – Kapparina

+0

仍然無法正常工作。 :( – David

回答

0

添加.success()回調函數,當請求完成後,好了,成功地被調用。在該功能中,將用戶重定向到您所需的謝謝頁面。

像這樣:

所有的
$.ajax({ 
    url: $(this).attr('action'), 
    ... 
    success: function(result) { 
     // result unused, drop it if you want :) 
     window.location.replace('url_to_your_thank_you_page'); 
    } 
}); 
+0

他已經有一個 –

+0

哇我抄了他的代碼,並沒有成功的功能,我是否失明或做過這樣的巨魔嗎? – Kapparina

+0

太多的咖啡和時間在屏幕前,發生在我們身上:) –

0

首先改變這種$(document).on('submit', '.formID', function(e) {這個$(document).on('submit', '#formID', function(e) {
現在試着放置在上面這條線e.preventDefault();,在ajax調用之前:

$('#formID').submit(function(e) { 
    e.preventDefault(); 
    $.ajax({ 
     url: $(this).attr('action'), 
     type: $(this).attr('method'), 
     data: $(this).serialize(), 
     success: function(html) { 
      alert('ok'); 
      window.location("Thanks page link"); 
     } 
    }); 
}); 

編輯
您的評論下面,我不熟悉版gscript的API,但也許考慮將button,將調用你的功能有問題嗎$('#myForm').submit()

+0

不起作用,但謝謝。 :) – David

+0

我已經更新我的答案嘗試'$('#formID')。submit'。什麼不起作用,你會得到一個錯誤? –

+0

當您使用google腳本作爲操作時,提交按鈕會將您發送到報告頁面。這就像劇本不重要,仍然沒有錯誤。 – David