2015-12-06 23 views
1

以下代碼用於允許用戶發送查詢。聯繫表格在網站初始加載時加載,如果用戶立即訪問聯繫表單並處理查詢,代碼將按預期工作。如果用戶首先點擊另一個使用AJAX動態加載內容並隨後訪問聯繫頁面併發送查詢的選項卡,則會出現問題。AJAX在後續加載另一個動態頁面後未捕獲響應

儘管發送了消息,但是從服務器返回的成功消息正在屏幕上回顯,並且所有內容都已丟失。有人知道原因是什麼嗎?

jQuery和AJAX代碼

$(document).ready(function() { 
var request; 
$("#EnquiryForm").submit(function(event){ 
if (request) { 
request.abort(); 
} 
event.preventDefault(); 
var $form = $(this); 
var $inputs = $form.find("input, select, button, textarea"); 
var serializedData = $form.serialize(); 
$inputs.prop("disabled", true); 
request = $.ajax({ 

url: "index.php", 
type: "POST", 
data: serializedData 
}); 
request.done(function (response, textStatus, jqXHR){ 
    alert(response);     
}); 
request.fail(function (jqXHR, textStatus, errorThrown){ 
    console.error("The following error occurred: " + textStatus, errorThrown); 
}); 
request.always(function() { 
$("#EnquiryForm")[0].reset(); 
    $('#seniorEnquiries').prop('checked', true); 
    $('input').iCheck({ 
    radioClass: 'iradio_square-red', 
    increaseArea: '20%' // optional 
    }); 

$inputs.prop("disabled", false);}); 
$('input').iCheck('enable'); 
}) 
}) 

PHP

$message = sendEnquiry(); 
echo $message; 

回答

0

您的代碼運行在document ready並設置事件鉤子submit,因爲標籤HTML是通過Ajax加載它沒有附加的事件掛鉤,並且document ready不會再次觸發,表單將作爲普通帖子/獲取而不是通過阿賈克斯。

每次在表單中加載html表單時,都會通過設置submit鉤子來修復它。

+0

我通過將代碼放置在聯繫人表單中,而在加載主頁期間加載的單獨的JavaScript文件之前解決了此問題。感謝您的回答。 – Tuisceanach

相關問題