2010-08-25 99 views
0

我的網頁上有一些鏈接,點擊後打開一個fancybox。在fancybox裏面有一些動作按鈕(如「關閉項目」,「刪除項目」)。點擊這些按鈕後,我希望它像往常一樣提交表單,然後關閉fancybox。我怎樣才能在不干擾POST的情況下做到這一點?關閉FancyBox之後?

注意:我沒有使用Ajax。

回答

2

如果你的後端上完成時返回的東西,比如我的回聲「已發送」你可以這樣做:

$.post("php/send_mail.php", function(result){ 
    if(result == 'sent'){ 
    //$('#success').slideDown('slow'); -My code 
    //$('#submit').hide(); -My code 
    $.fancybox.close(); 
    } 
}); 

只有在你的情況,你會想這樣做$ .fancybox.close()

如果你通過$ .ajax而不是.post,你可以使用成功:代替。

對不起,如果這沒有幫助。

1

馬克,

當你說執行後,我假定你的意思是你想要的fancybox只要發送請求(或接近的時間儘可能)關閉?我假設你正在序列化fancyBox的部分作爲POST的一部分,並且不想太早關閉它。

在這種情況下,我會充分利用jQuery.ajax beforeSend回調關閉對話框之前送出的請求:

$.ajax({ 
    beforeSend: function() { 
    //close fancybox here 
    } 
}); 

XMLHttpRequest對象是在這一點上創建的,所以不應該有對請求有任何影響。

--Andrew

+0

不......我不需要序列化任何東西。它不使用jQuery.ajax。這是一種常規的舊形式。我想當你點擊按鈕時,它需要去執行'

'這是一個重定向權限?然後我不知道該把鉤子放在哪裏。但我想我可以把按鈕和完全關閉fancybox ajaxify? – mpen 2010-08-25 19:38:30

0

如何隱藏窗體,窗體部件移動到所述主體元件之下,然後調用form.submit()。

0

我不確定要理解你的問題,但我注意到當fancybox以很多鏈接打開時,在fancybox的title屬性中動態創建的按鈕,這些元素不在你的頁面的DOM中。 而且你不能與你的頁面元素進行交互。

我不知道你如何創建你的行動按鈕(如「封閉項」,「刪除項目」),也許你應該解釋,來幫助我們來幫助你:)

0

我有同樣的問題,你有。我有一個很好的解決方案如下。 如果我像往常一樣使用php post codeigniter

'<?php 
if ($this->input->post()) 
    { 
*after finishing the action use the below code 

echo "<script> parent.jQuery.fancybox.close(); </script>"; 

}' 
?> 
//if you want to refresh the parent window use parent.location.reload(); before close the //fancy box