我一直在将MailChimp整合到我正在设计的网站中的时间最长!
问题是验证不适用于嵌入式订阅表单。该表单不是内联错误消息,而是将用户踢到MailChimp注册页面以更正错误或确认列表选择。
我已经对代码进行了大量的自定义,所以不幸的是,回到默认值不是一个选项。
以下是我遇到的错误,但我是JS n00b所以我不知道它们是什么意思:
中断错误mce_jQuery未定义:
我不认为这是一个可以通过控制台捕获的错误。
奇怪的是这个。如果我删除自定义代码并从MailChimp发布静态代码它会以某种方式工作,但我已经复制了所有相关代码,但仍然没有骰子。
您可以通过以下网址查看该网站:http://ranya.net/wp/contact
MailChimp列表注册位于右上角滑动下拉列表中。相关脚本嵌入在div#top_mailing之后。
答案 0 :(得分:4)
或者您只需在mailChimp.js中重命名此变量:
var mce_jQuery = jQuery.noConflict();
到
var mce_jQuery = jQuery;
不知道为什么MailChimp开发人员决定用方法重写美元符号。
答案 1 :(得分:2)
使用jquery 1.8.1和截至2013年5月28日的最新mailchimp代码
我无法找到上述评论来取消注释。
但我可以看到这个mailchimp代码:
function mce_init_form(){
jQuery(document).ready( function($) {
我对此的理解不是很好,但重新分配了默认的jquery $变量。
然而,在代码的后面有这样的:
function mce_success_cb(resp){
$('#mce-success-response').hide()
将mailchimp代码绊倒
我把它改成了
function mce_success_cb(resp){
jQuery(document).ready( function($) {
$('#mce-success-response').hide();
它有效。不太清楚为什么(并且会喜欢解释!)但我认为我会发布,因为有人可能会像我一样遇到这个问题。
答案 2 :(得分:2)
我对上述任何解决方案都没有运气,可能是因为最后一个答案已经超过一年了,并且不再反映当前的mailchimp代码。
为了解决我的jQuery冲突,我复制了MailChimp从http://s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js提供的mc-validate.js
脚本并将其放在我们自己的服务器上。然后我美化它并从文件中删除了jquery代码。这样,现在我们的服务器上只剩下我们的jquery版本了,没有任何冲突了。
看起来,你也不再需要var $mcj = jQuery.noConflict(true);
行了。
@mailchimp:如果您只是在亚马逊服务器上提供不同版本的代码,那么这个问题的一个很好的解决方案是,它不包含jquery。
答案 3 :(得分:1)
尝试将此代码移到顶部(例如,紧跟在<head>
标记之后):
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
<script>jQuery.noConflict();</script>
<script type="text/javascript" src="http://downloads.mailchimp.com/js/jquery.validate.js"></script>
<script type="text/javascript" src="http://downloads.mailchimp.com/js/jquery.form.js"></script>
答案 4 :(得分:1)
Alec Smart的回答几乎是正确的。通过在NoConflict模式下运行jQuery,问题得以解决。亚历克建议我添加jQuery.noConflict();在文档的标题中。事实证明,MailChimp嵌入代码中有一行被注释掉了。为了正确启用noConflict模式,MailChimp脚本搜索
//var mce_jQuery = jQuery.noConflict();
删除评论,使其看起来像这样
var mce_jQuery = jQuery.noConflict();
然后你应该好好去! :)