【问题标题】:Contact Form 7 submit without page refresh联系表格 7 提交而不刷新页面
【发布时间】:2016-05-11 09:18:30
【问题描述】:

我正在开发一个带有 Contact Form 7 插件的 wordpress 网站。 当有人单击按钮(触发器)时,在 prettyPhoto 弹出框中打开联系表格 7。单击提交按钮后,弹出窗口会自动关闭。如果表单提交有错误,发件人看不到错误,因为页面刷新弹出框自动关闭。

有什么方法可以停止关闭弹出框或停止页面刷新,并且在提交表单后弹出框保持打开状态,以便用户可以看到表单响应/错误?

【问题讨论】:

    标签: page-refresh contact-form-7 prettyphoto


    【解决方案1】:

    解决:终于我明白了。通常我们在网页上使用 Contact Form 7 时,会在页面加载时执行 ajax 表单初始化函数。在这种情况下,我必须在弹出框中使用 cf7 短代码,以便在单击链接后表单 html 将在弹出框中呈现。 (初始化脚本已加载,但没有为 ajax 初始化表单,因为页面上不存在表单)。 解决方案是,加载 cf7 javascript 文件并调用 $('form').wpcf7InitForm();表单渲染后的函数。

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

    【讨论】:

    • 你用官方的 prettyPhoto 插件解决了这个问题吗?我找不到名为“fancybox”的函数或可以设置 afterLoad 事件的函数。
    • 我得到 Uncaught TypeError: $(...).wpcf7InitForm is not a function
    • @LaurenceCope 确保在加载表单后调用该函数。 1- 加载表单 2- 加载脚本 plugins/contact-form-7/includes/js/scripts.js 3- 调用函数 wpcf7InitForm()
    • 我正在使用 Magnific Popup,因此在打开的回调中我输入以下内容,但看起来 scripts.js 未加载,因为它无法识别该函数: open: function() { $.getScript(' example.com/wp-content/plugins/contact-form-7/includes/js/…); $.getScript('example.com/wp-content/plugins/contact-form-7/includes/js/…); $('form').wpcf7InitForm();返回; },
    猜你喜欢
    • 2017-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多