隐藏错误消息div与setTimeout无法使用Smarty工作

时间:2011-01-07 12:47:58

标签: php javascript smarty

我试图在指定的时间后使用javascript函数setTimeout隐藏错误消息div但是它给我错误,它是一个错误的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 个答案:

答案 0 :(得分:2)

您需要为javascript使用smarty的literal标记。它告诉聪明的编译器不要执行代码并保持原样。

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

为你的场景, 尝试,

{literal}
    <script type="text/javascript">
        setTimeout(function(){$('error').hide(); }, 1000);
      </script>
{/literal}

答案 1 :(得分:1)

如果你想在模板的其他地方使用Smarty保留字符,如{和},就像使用内联JS一样,你必须使用literal-tag来逃避它。此外,如果你周围有一些空白,聪明意识到它不是一个聪明的标签而忽略它。

请参阅http://www.smarty.net/docs/en/language.function.literal.tpl