2016-02-02 48 views
2

我正在與聯繫表格7插件的wordpress網站工作。 當有人點擊一個按鈕(觸發器)時,請聯繫表格7在prettyPhoto彈出框中打開。點擊提交按鈕後,自動彈出關閉。如果表單提交時發生錯誤,由於頁面刷新,彈出框自動關閉,因此發件人看不到錯誤。聯繫表7提交沒有頁面刷新

有沒有什麼辦法停止關閉彈出框或停止頁面刷新和彈出框在提交表單後保持打開狀態,以便用戶可以看到表單響應/錯誤?

回答

2

解決:最後我明白了。通常,當我們在網頁上使用聯繫表單7時,會在頁面加載時執行ajax表單初始化函數。在這種情況下,我必須在彈出框中使用cf7 shortcode,因此在點擊鏈接後,html將在彈出框中呈現。 (初始化腳本已加載,但未初始化表單,因爲表單在頁面上不存在)。 解決方法是,加載cf7 javascript文件並調用$('form')。wpcf7InitForm();表單呈現後的函數。

\t $(".fancybox").fancybox({ 
 
\t \t 'padding'  : 0, 
 
\t \t 'maxWidth' \t \t : 660, 
 
\t \t 'autoHeight' : true, 
 
\t \t afterLoad: function() { \t 
 
\t \t \t $.getScript('http://domain.com/wp-content/plugins/contact-form-7/includes/js/jquery.form.min.js'); 
 
\t \t \t $.getScript('http://domain.com/wp-content/plugins/contact-form-7/includes/js/scripts.js'); 
 
\t \t \t $('form').wpcf7InitForm(); // Initialize form for AJAX 
 
\t \t \t $.fancybox.update(); 
 
\t \t \t return; 
 
\t \t }, 
 
\t }); \t

+0

你解決這個與官方prettyPhoto插件?我無法找到一個名爲「fancybox」的功能,或者我可以設置afterLoad事件的功能。 – jannnik

+0

我得到Uncaught TypeError:$(...)。wpcf7InitForm不是函數 –

+0

@LaurenceCope確保函數在窗體加載後被調用。 1-加載表格 2-加載腳本插件/ contact-form-7/includes/js/scripts.js 012-3-調用函數wpcf7InitForm() –