Скрытие сообщения об ошибке div с setTimeout не работает с помощью Smarty - PullRequest
0 голосов
/ 07 января 2011

Я пытаюсь скрыть div сообщения об ошибке, используя функцию javascript setTimeout по истечении указанного времени, но он выдает мне ошибки из-за неправильного синтаксиса smarty, раньше я никогда не использовал smarty, поэтому я очень признателен, если кто-нибудь сможет помогите мне освоиться с этим синтаксисом

Мой код выглядит следующим образом

{if $error_message != ""}
  <script type="text/javascript">
    setTimeout(function(){$('error').hide(); }, 1000);
  </script>
  <div id="error" class='error_message'>
    {$error_message}
  </div>
{/if}

Заранее спасибо

Ответы [ 2 ]

2 голосов
/ 07 января 2011

Вам нужно будет использовать тег literal smarty для javascript. Он сообщает компилятору smarty не выполнять код и сохранять его как есть.

http://www.smarty.net/docsv2/en/language.function.literal

для вашего сценария, попробуйте,

{literal}
    <script type="text/javascript">
        setTimeout(function(){$('error').hide(); }, 1000);
      </script>
{/literal}
1 голос
/ 07 января 2011

Если вы хотите использовать зарезервированные символы Smarty, такие как {и}, в другом месте шаблона, как при встроенном JS, вы должны использовать литерал-тег, чтобы избежать его. Кроме того, если у вас есть пробел вокруг, smarty понимает, что это не smarty тег, и игнорирует его.

См. http://www.smarty.net/docs/en/language.function.literal.tpl

...