2012-01-11 31 views
0


我想在Fancybox窗口中提交表單以進行預覽;這看起來不那麼困難,因爲一個簡單的在預覽Fancybox窗口中提交表格(帶TinyMCE麻煩...)

$('#preview').fancybox({ 
    ajax: { 
     type: "POST", 
     data: $('#form1').serialize() 
    } 
}); 

能做的工作...
但事情永遠不會那麼容易,和TinyMCE編輯器(jQuery的版本)增加了麻煩
我發現上面的代碼不發送更新textarea的內容(不知道爲什麼),所以它是無用的預覽

我結束了與此:

$('#preview').click(function(e){ 
    e.preventDefault(); 
    $(this).fancybox({ 
     ajax: { 
      type: "POST", 
      data: $('#form1').serialize() 
     } 
    }); 
}) 

臨屋t做這項工作,但只有當我點擊兩次che #preview錨點
似乎第一次點擊「更新」textarea的內容,第二次點擊打開Fancybox嗯,你有更好的解決方案嗎?我用Google搜索左右,但似乎沒有什麼了「在預覽窗口的fancybox提交表單」 ......提前

謝謝...

+0

伊萬,一個小問題得到了TinyMCE的內容 - 它是如何用自己的方式來調用鏈接?我試圖傳遞數據,我不能這樣做iframe,只能到新的空白頁面。當我試圖傳遞給iframe時,發生錯誤「請求的內容無法加載」。 – kacper 2012-12-17 19:58:41

+0

嗨kacper,這是一箇舊的帖子,我不記得如何,如果我解決了這個問題或嘗試了另一種方式(我不記得我正在工作的網站)...對不起 – Ivan 2012-12-26 10:35:36

回答

0

您請求的textarea的內容,但內容似乎並沒有被最新。 這是因爲tinymce編輯器內容不在textarea內部,而是在contenteditable iframe中。前面的textarea是隱藏的。要更新隱藏的textarea,你可以使用tinymce.triggerSave()

$('#preview').click(function(e){ 
    e.preventDefault(); 
    tinymce.triggerSave(); 
    $(this).fancybox({ 
     ajax: { 
      type: "POST", 
      data: $('#form1').serialize() 
     } 
    }); 
}) 

,或直接從編輯器

$('#preview').click(function(e){ 
    e.preventDefault(); 
    $(this).fancybox({ 
     ajax: { 
      type: "POST", 
      data: tinymce.get('form1').getContent(); 
     } 
    }); 
}) 
+0

感謝您的回答,Thariama,但這些都不起作用;在第一個問題中,我有「雙擊」問題(第二次點擊就會啓動fancybox),即使我刪除了最後一個「;」,我也沒有任何花哨的方式,頁面會在自己的窗口中打開。 .. – Ivan 2012-01-11 14:20:52

+0

sry,我沒有別的想法 – Thariama 2012-01-11 14:35:51