2012-01-20 46 views
2

我使用PloneFormGen工具創建了一個表單。現在我想以類似於單擊按鈕時顯示登錄表單的方式在彈出窗口中顯示此表單。 我已經查看了jQuery工具模塊,它給了我一個選項,可以在彈出窗口中加載url/ajax表單。我試圖在iframe中加載url,但它在彈出窗口中顯示整個頁面。 我只需要顯示錶單部分。 我是否需要以某種方式定製plone formgen表單,以便jQuery工具能夠理解它? 或者我需要以其他方式創建表單嗎? 關鍵是我需要郵件程序的功能,一旦我的表單被成功引用,所以Plone FormGen適合這種情況下的需求。 任何指導/指針會有所幫助。建議一些指針。在彈出框中顯示Plone FormGen

+0

看來你沒有使用正確的jQuery選擇拿起形式。你可以發佈你的代碼(只有彈出部分),以便我們可以修復它嗎? –

+0

我的javascript如下: jq(document).ready(function(){ jq('#view_screenshot')。prepOverlay({subtype:'iframe', urlmatch:'home/view-screen-shots', formselector:'form'}); }); 我得到的錯誤是:錯誤:this.getContent不是函數 源文件:www.example.com/Home/portal_javascripts/My%20Theme/++resource++plone.app.jquerytools.overlayhelpers.js 我點擊圖片即可調用此功能。 – Avinash

回答

4

看看Plone在plone_ecmascript/popupforms.js中設置自己的彈出窗體的方式。它會告訴你幾個如何做彈出窗體的真正可行的例子。例如,聯繫表單設置:

// contact form 
$('#siteaction-contact a').prepOverlay(
    { 
     subtype: 'ajax', 
     filter: common_content_filter, 
     formselector: 'form[name="feedback_form"]', 
     noform: function(el) {return $.plonepopups.noformerrorshow(el, 'close');} 
    } 
); 

PFG表單也沒有區別。請注意「過濾器」規範:這是確保您不會顯示比您希望的更多的頁面。在AJAX彈出窗口中可以進行這種過濾,但不能使用iframe。

http://pypi.python.org/pypi/plone.app.jquerytools/1.4b1

+0

Steve,我嘗試瞭解決方案,但當我將子類型更改爲ajax時,我收到了此消息「服務器沒有響應,請稍後再試。」jq('#view_screenshot')。prepOverlay({subtype:'ajax',filter: common_content_filter,formselector:'form [name =「edit_form」]', noform:function(el){return jq.plonepopups.noformerrorshow(el,'close');} }); Whenerver我使用plone創建表單形式gen我總是得到與表格相同的名字。所以currenlty我無法區分我創建的不同形式是否有任何機制在創建表單時給出不同的表單名稱 – Avinash

+0

jq()部分中的選擇器需要指向表單頁面的鏈接。我懷疑你的不是。如果您按照該鏈接(沒有參與PrepOverlay),它應該顯示您的表單頁面。 prepOverlay例程將其設置爲顯示錶單。 PFG形成自己的帖子。它們通過網址進行區分。 – SteveM

+0

您可以使用jquerytools使用Plone formgen的嵌入模式。在iframe中使用的網址必須是yourform/fg_embedded_view_p3 – toutpt