【问题标题】:js placeholder undefined message errorjs占位符未定义消息错误
【发布时间】:2016-10-15 10:35:42
【问题描述】:

这个js有什么问题?它给了我“未捕获的 ReferenceError:msg_newsl 未定义”,但它是 prestashop 的预设模块,因此应该定义它。

js

$(document).ready(function() {

$('#newsletter-input').on({
    focus: function() {
        if ($(this).val() == placeholder_blocknewsletter ||
$(this).val() == msg_newsl)
            $(this).val('');
    },
    blur: function() {
        if ($(this).val() == '')
            $(this).val(placeholder_blocknewsletter);
    }
});

var cssClass = 'alert alert-danger';
if (typeof nw_error != 'undefined' && !nw_error)
    cssClass = 'alert alert-success';

if (typeof msg_newsl != 'undefined' && msg_newsl)
{
    $('#columns').prepend('<div class="clearfix"></div><p class="' +
cssClass + '"> ' + alert_blocknewsletter + '</p>');
    $('html, body').animate({scrollTop: $('#columns').offset().top},
      'slow');
    }
});

tpl

<div id="newsletter_block_left" class="block" style="background-color:#efefef; text-align:center">
{*<h4 class="title_block">{l s='Newsletter' mod='blocknewsletter'}</h4>*}
<div class="block_content">
    <p style="font-size: 16px;text-transform: uppercase;padding-top: 10px;font-family: 'Questrial', sans-serif;">{l s='stay tuned, subscribe to our newsletter'}</p>
        <form action="{$link->getPageLink('index', null, null, null, false, null, true)|escape:'html':'UTF-8'}" method="post">
        <div class="form-group{if isset($msg) && $msg } {if $nw_error}form-error{else}form-ok{/if}{/if}" >
            <input class=" inputNew form-control grey newsletter-input" id="newsletter-input" type="text" name="email" size="18" value="{if isset($value) && $value}{$value}{else}{l s='your e-mail' mod='blocknewsletter'}{/if}" />
            <button type="submit" name="submitNewsletter" class="nsp button button-small">
                <p>Subscribe</p>
            </button>
            <input type="hidden" name="action" value="0" />
        </div>
    </form>
</div>

【问题讨论】:

  • msg_newsl 似乎是一个未声明的变量
  • @user2181397 那么我应该改变什么才能让它工作?
  • msg_newsl 的预期值是多少?
  • @user2181397 我不知道这是我在 prestashop 上找到的模块。没编辑过也不知道怎么编辑js,还在学习中。

标签: javascript jquery prestashop placeholder


【解决方案1】:

检查你是否有:

{strip}
{if isset($msg) && $msg}
{addJsDef msg_newsl=$msg|@addcslashes:'\''}
{/if}
{if isset($nw_error)}
{addJsDef nw_error=$nw_error}
{/if}
{addJsDefL name=placeholder_blocknewsletter}{l s='Enter your e-mail' mod='blocknewsletter' js=1}{/addJsDefL}
{if isset($msg) && $msg}
    {addJsDefL name=alert_blocknewsletter}{l s='Newsletter : %1$s' sprintf=$msg js=1 mod="blocknewsletter"}{/addJsDefL}
{/if}
{/strip}

在 /themes/your-theme/modules/blocknewsletter/blocknewsletter.tpl

【讨论】:

    【解决方案2】:

    我发现了问题,在 tpl 上写的是 l s='your e-mail' 而不是 l s='Enter your e-mail'

    【讨论】:

      猜你喜欢
      • 2013-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-23
      • 2018-04-30
      • 2015-07-29
      • 1970-01-01
      相关资源
      最近更新 更多