我正在尝试在提交表单时显示提醒。
我将此代码添加到Contact Form 7插件(版本4.2.2)的“其他设置”
on_submit: “警报( '提交');”
什么都没有出现。
如何解决或调试此问题的任何想法?
答案 0 :(得分:2)
如果不看源代码就不容易猜测,但我今天感到高兴。
你的表格是否正常运作? 如果没有,联系表格7的JavaScript可能无法在您的网站上运行。
我将向您展示一些可能的原因。
未加载JavaScript文件
这是我最近看到的原因。这是由于您的模板缺少调用JavaScript排队函数。所需的函数是wp_head()和wp_footer(),它们分别在header.php和footer.php中,大多数正确的主题。
与其他JavaScript冲突
许多插件和主题加载自己的JavaScript。其中一些可能已被错误地创建,因此与其他插件冲突。在大多数情况下,当发生此类冲突时,您可以使用Firebug(Firefox的附加组件)找到JavaScript错误。
HTML结构无效
与其他JavaScript一样,Contact Form 7的JavaScript遍历和操纵HTML的结构。因此,如果原始HTML结构无效,则无法正常工作。您可以使用HTML验证程序检查HTML是否有效。我建议在这种情况下使用W3C标记验证服务。
我的建议是使用CF 7默认的方式来实现你的想法 - 我们称之为:
“ 1.最佳选择”。
在WP仪表板上,转到“联系人”(CF7)并选择您的表单,然后转到“其他设置”选项卡。
在那里,您可以添加类似的代码:
on_sent_ok: "alert('sent ok');"
on_submit: "alert('submit');"
如果您设置on_sent_ok:
后跟单行JavaScript代码,则可以告知联系人表单成功发送邮件时应执行的代码。同样,使用on_submit:
,您可以告知在提交表单时应执行的代码,而不管结果如何。
在这两个操作中,您可以像使用.js文件一样使用各种JS代码:
on_sent_ok: "some js code here"
你可以用它来调用这样的函数:
on_sent_ok: "your_function();"
或者写一些代码(这个代码重定向到感谢页面):
on_sent_ok: "document.location='/thank-you-page/';"
<强> 2。另一种选择是使用jQuery处理它:
联系表单7热衷于发出一些冒泡到文档对象的Javascript事件。在4.2版中,可以在contact-form-7 / includes / js / scripts.js中找到它们。如果你正在使用jQuery,你可以访问这样的事件:
$(document).on('spam.wpcf7', function () {
console.log('submit.wpcf7 was triggered!');
});
$(document).on('invalid.wpcf7', function () {
console.log('invalid.wpcf7 was triggered!');
});
$(document).on('mailsent.wpcf7', function () {
console.log('mailsent.wpcf7 was triggered!');
});
$(document).on('mailfailed.wpcf7', function () {
console.log('mailfailed.wpcf7 was triggered!');
});
编辑:
使用了其中一些jQuery选项但不知何故已弃用,所以如果遇到问题,请尝试使用eg。 'wpcf7:mailsent'代替'mailsent.wpcf7'。
相同的格式适用于其他选项,实际上所有选项都可在上述文件中观察到:
可湿性粉剂内容/插件/接触形式-7 /包括/ JS /的script.js
答案 1 :(得分:0)
您有任何关于我们进一步检查的链接吗?这很难。
但是:&#34;我确信该表格是&#34;已提交&#34;因为我可以看到联系表格7表格验证错误&#34; - &GT;是服务器验证还是前端验证?也许它不发送?
一切顺利
答案 2 :(得分:0)
我认为有些东西阻止了你的弹出窗口。
尝试使用&#34; console.log&#34;进行调试,以便将此作为潜在问题消除:
on_submit:"console.log('Submitted');"