2016-02-02 47 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() –