我已经有最糟糕的时间将MailChimp整合到我正在设计的网站中!

问题在于验证不适用于嵌入式订阅表格。该表单没有插入错误消息,而是将用户踢到MailChimp Inbicup页面以纠正错误或确认列表选择。

我对代码进行了大量自定义,因此不幸的是,返回默认值不是一个选择。

这是我遇到的错误,但是我是JS N00B,所以我不知道它们的意思:

打破错误MCE_JQUERY未定义:

Screen shot 2010-08-22 at 4.34.50 AM.jpg

我认为这不是可以被控制台捕获的错误。

奇怪的是这个。如果我删除自定义代码,并且只需以某种方式发布MailChimp的静态代码,但是我已经复制了具有重要功能的所有相关代码,但仍然没有骰子。

您可以在以下网站上查看网站: http://ranya.net/wp/contact

MailChimp列表注册在右上角滑动下拉列表中。相关脚本在Div#top_mailing之后嵌入。

有帮助吗?

解决方案 5

Alec Smart的答案几乎是正确的。通过在Noconflict模式下运行jQuery,解决了问题。 Alec建议我添加jQuery.noconflict();在文档的标题中。事实证明,MailChimp嵌入式代码中有一条线条。为了正确启用MailChimp脚本的Noconflict模式搜索

 //var mce_jQuery = jQuery.noConflict();

删除评论,以便看起来像这样

 var mce_jQuery = jQuery.noConflict();

然后你应该很好! :)

其他提示

或者,您只需在MailChimp.js中重命名此变量:

var mce_jQuery = jQuery.noConflict();

var mce_jQuery = jQuery;

不知道为什么MailChimp开发人员决定使用一种方法重写美元标志。

截至2013年5月28日,使用JQuery 1.8.1和最新的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();

它有效。不太确定为什么(并且会喜欢解释!),但是以为我会以与我相同的方式遇到这个问题时发布。

我对上述任何解决方案都没有运气,这可能是因为最后一个答案已经超过一年了,并且不再反映当前的MailChimp代码。

为了解决我的贾格里冲突,我复制了 mc-validate.js MailChimp提供的脚本 http://s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js 并将其放在我们自己的服务器上。然后,我将其美化并从文件中删除了jQuery代码。这样,现在只有我们的jQuery版本留在服务器上,而是没有任何冲突了。

看起来,您也不需要该行 var $mcj = jQuery.noConflict(true); 再过了。

@mailchimp:解决此问题的一个很好的解决方案是,如果您只能在Amazon服务器上提供其他版本的代码,则不包括JQuery。

尝试将此代码移至顶部(例如 <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>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top