【问题标题】:Script work only in RWD theme and don't work on default theme脚本仅适用于 RWD 主题,不适用于默认主题
【发布时间】:2016-12-23 09:59:59
【问题描述】:

我有一个问题,我在我的 magento 网站上使用默认主题,并使用这个脚本。它仅适用于 RWD 主题。我尝试查找有关它的一些信息,但没有找到任何东西。如果您知道一些可以帮助我在默认主题中使用此脚本的信息,请提供帮助。

<div class="block block-subscribe">
<div class="block-title">
    <strong><span><?php echo $this->__('Newsletter') ?></span></strong>
</div>
<div id="feedback" style="display:none" class="mini-newsletter">
    Thank you for subscribing to our newsletter!
</div>
<form action="<?php echo $this->getFormActionUrl() ?>" name="newsletter-form" id="newsletter-form" method="post">
    <div class="block-content">
        <div class="form-subscribe-header">
            <label for="newsletter"><?php echo $this->__('Sign Up for Our Newsletter:') ?></label>
        </div>
        <div class="input-box">
            <input type="text" placeholder="Email address" name="email" id="newsletter" title="<?php echo $this->__('Subscribe to Our Newsletter') ?>" class="required-entry input-subscribe" style="width:178px;" />
            <div class="error-news-msg" id="error-news-msg" style="display:none;">Please enter a valid email address.</div>
        </div>
        <div class="actions">
            <button type="button" title="<?php echo $this->__('Subscribe') ?>" onclick="myfunc();" class="button">
                <span><span>Subscribe</span></span>
            </button>
        </div>
    </div>
</form>

<script type="text/javascript">
    function myfunc()
    {
        var newsletterSubscriberFormDetail = new VarienForm('newsletter-form');
        var form_email = $('newsletter').getValue();
        var params_form = $('newsletter-validate-detail');
        //alert(params_form);
        if(echeck(form_email))
        {
            //alert(form_email);
            //alert(Form.serialize($('newsletter-validate-detail')));
            new Ajax.Updater({ success: 'newsletter-form' }, '<?php echo $this->getUrl('newsletter/subscriber/new') ?>', {
                asynchronous:true, evalScripts:false,
                parameters: { email: form_email },
                onComplete:function(request, json){Element.hide('newsletter-form');Element.show('feedback');},
                onLoading:function(request, json){Element.hide('news-loader');}

            });   
        }
        else
        {
            //alert(form_email);
            return false;
        }    
    }   

    function echeck(str) {    
        var at="@";
        var dot=".";
        var lat=str.indexOf(at);
        var lstr=str.length;
        var ldot=str.indexOf(dot);
        if (str.indexOf(at)==-1){
            //alert("Invalid E-mail ID")
            goProcedural();
            return false
        }

        if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
            //alert("Invalid E-mail ID")
            goProcedural();
            return false
        }

        if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
            //alert("Invalid E-mail ID")
            goProcedural();
            return false
        }

        if (str.indexOf(at,(lat+1))!=-1){
            //alert("Invalid E-mail ID")
            goProcedural();
            return false
        }

        if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
            //alert("Invalid E-mail ID")
            goProcedural();
            return false
        }

        if (str.indexOf(dot,(lat+2))==-1){
            //alert("Invalid E-mail ID")
            goProcedural();
            return false
        }

        if (str.indexOf(" ")!=-1){
            //alert("Invalid E-mail ID")
            goProcedural();
            return false
        }    
        return true
    }

    function goProcedural()
    {
        Element.show('error-news-msg');
        Element.hide.delay(5, 'error-news-msg');
    }

</script>

【问题讨论】:

  • 请定义“不工作”。请分享您正在使用的代码的文件路径,并显示您网站的主题配置(系统 -> 配置 -> 设计)
  • 请查看您的控制台您的控制台中可能有一些错误
  • 如果这是 Magento 特有的,请考虑在 Magento SE site 上发帖。
  • @RobbieAverill 我使用自定义表单 app/design/frontend/light4website-new/default/template/newsletter/subscribe-custom-form.phtml 在控制台中,没有错误。当我单击此表单中的提交时,请填写“输入有效的电子邮件地址”。在 RWD 主题中,此代码工作正常。我读到 rwd 主题更扩展支持 js,也许在这个问题?

标签: javascript ajax forms magento newsletter


【解决方案1】:

请务必将管理员配置中的主题包文件夹路径从 rwd 更改为您的自定义文件夹名称。您可以通过在管理面板 > 系统 > 配置 > 设计中设置包名称和主题文件夹名称来完成此操作

【讨论】:

  • 谢谢。但我需要这段代码在我的自定义主题中工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-11
  • 2021-01-29
  • 1970-01-01
  • 2015-07-09
  • 1970-01-01
相关资源
最近更新 更多