2013-12-11 100 views
0

我正在使用Fancybox來顯示錶單。Fancybox - 在fancybox回調中調用fancybox模式對話框

在這種形式中,當它被提交時,代碼通過Ajax處理表單內容。

完成後,我希望代碼顯示一個模式對話框,通知用戶「動作完成!」這樣的動作。

我有這樣的JS代碼在這裏

$(".fancybox").fancybox({ 
    afterShow: function() { 
     $('#foo_form').on('submit', function(event) { 
      event.preventDefault(); 

      $.ajax({ 
       url: $(this).attr('action'), 
       data: $(this).serializeArray(), 
       type: 'POST' 
      }).done(function() { 
       $.fancybox.close(); 

       // TODO: Possible to call Modal Fancybox dialog here? 
      }); 
     }); 
    } 
}); 

是否可以調用模態對話框的fancybox?

回答

0

您可能有兩種選擇:

1)。在.done()方法中,不要使用$.fancybox.close();,而要使用$.fancybox.open("action done!"); ...這將關閉現有的fancybox並在fancybox中打開您想要的新消息。 2)。將afterClose回調添加到您現有的代碼中,並使用$.fancybox.open("action done!");方法調用新的fancybox消息。

雖然我會使用第一個選項。

通知無論如何,你只能有ONE fancybox一次打開。

+0

感謝您的回覆。我嘗試了第一種選擇,因爲像你一樣,它是更好的選擇。但是我收到了這條消息'請求的內容無法加載。 請稍後再試.'。任何想法爲什麼? – arvinsim

+0

@arvinsim:不知道,適合我http://jsfiddle.net/w52UG/ – JFK

+0

這個調用是在'afterShow' fancybox回調中。這可能會導致一些問題。 – arvinsim