Smarty で JavaScript や CSS を使うと構文エラーになる対策

{literal} 〜 [/literal}

で挟むとその間にあるものは、Smarty の構文解析を行いません。
互換性を考えないのであれば公式マニュアルにあるように left_delimiter と right_delimiter を {, } から、<!–{, }–> に変更するというのもスマートです。ただしその場合、タグの属性の一部を変数にいれる使い方をすると、ソースはプレーンな HTML ではなくなりますが..。

<option value=1 {checked}>

 
参考:
Smarty の構文解析を回避する(Smarty 2.6.3 マニュアル)