2012-07-16 36 views
0

這是我的表格:如何在提交表單後打開一個colorbox?

<form name="Aform" method="post" action="test.php" id="Aform"> 

這是我的腳本:

var validator = $("#Aform").validate({ 
... 
// form.submit(); <-- it works  
form.submit(function() { 
$.post($(this).attr("action"), $(this).serialize(), function(data) { 
    $.colorbox({html:data}); 
}, 
'html'); 
return false; 
}); 
// <-- it does not work 
+0

你能解釋更多的代碼嗎? – 2012-07-16 00:56:49

回答

1

你看着你的JS控制檯來看看你是否產生任何錯誤?你是否證實你的POST請求是成功的並返回數據?

它看起來這個代碼只在提交事件發生後才運行(假設代碼未顯示)。然後你定義了另一個事件處理程序,但是那個處理程序永遠不會被解僱,因爲submit事件不會再發生。

調用form.submit()觸發提交事件,調用form.submit(function(){})定義事件處理程序但不觸發提交事件。

定義事件處理程序後,您可以調用form.submit(),但是定義一個事件處理程序並立即調用它只是跳過不必要的循環。你可以這樣做:

var validator = $("#Aform").validate({ 
... 
$.post($(this).attr("action"), $(this).serialize(), function(data) { 
    $.colorbox({html:data}); 
}, 
'html'); 
相關問題