2011-01-07 20 views
0

我想隱藏一個錯誤消息div在指定的時間後使用javascript函數setTimeout,但它給了我錯誤,它是一個錯誤的smarty語法,我從來沒有用過智者之前,所以我會很感激,如果有人能幫助我獲得了這個語法隱藏一個錯誤消息div與setTimeout不工作使用Smarty

我的代碼是如果你想使用Smarty的保留如下提前

+0

你可以發佈你所得到的實際的錯誤? – kieran 2011-01-07 12:51:35

+0

我得到的錯誤信息如下Kieran 致命錯誤:Smarty錯誤:[在C:/xampp/htdocs/www_google_ads_integration//modules/order_checkout/tpl/order_checkout.tpl第21行中]:語法錯誤:無法識別的標記: $( '錯誤')隱藏()。 (Smarty_Compiler.class.php,446行)在1094行C:\ xampp \ htdocs \ www_google_ads_integration \ lib \ smarty-2.6.26 \ libs \ Smarty.class.php – 2011-01-07 13:03:24

回答

1

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

由於加速字符,例如{和}中的其他位置模板與內聯JS一樣,你必須使用literal-tag來轉義它。另外,如果你周圍有一些空格,smarty會意識到它不是一個聰明的標籤並且忽略它。

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

2

您需要使用javascript的literal標籤的Smarty的。它告訴smarty編譯器不要執行代碼並保持原樣。

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

您之情況, 試,

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