【发布时间】:2010-10-26 06:31:00
【问题描述】:
我有一个模板,其中包含模板内的 textarea。在 IE、Firefox 浏览器中,它可以正常工作,但在 Chrome 中则无法正常工作。如果我删除模板中的 textarea,那么它也可以在 Chrome 中运行。谁能帮帮我?
【问题讨论】:
标签: javascript jquery jtemplates
我有一个模板,其中包含模板内的 textarea。在 IE、Firefox 浏览器中,它可以正常工作,但在 Chrome 中则无法正常工作。如果我删除模板中的 textarea,那么它也可以在 Chrome 中运行。谁能帮帮我?
【问题讨论】:
标签: javascript jquery jtemplates
现在在 Firefox 4 中出现完全相同的问题。
解决方案是从外部文件加载模板。
var template = jQuery.createTemplateURL("/path/test_tmpl.txt");
$("#result").setTemplate(template);
$("#result").processTemplate(data);
test_tmpl.txt 例如
<table>
{#foreach $T.users as row}
<tr>
<td><textarea>{$T.row.id}</textarea></td>
<td>{$T.row.name}</td>
<td>{$T.row.age}</td>
</tr>
{#/for}
</table>
使用 jTemplates 0.7.8、jQ 1.4.2 测试
【讨论】:
偶然发现了同样的问题。当前的解决方案(在 JTemplate 更改日志中找到)是使用 CDATA 方式来设置模板样式
<p style="display: none">
<textarea id="template" rows="0" cols="0">**<![CDATA[**
<form ...>
...
<textarea rows="4" cols="20" name="name">{$T.Description}</textarea>
<input type="submit" value="Save" />
</form>
]]></textarea>
</p>
【讨论】:
我找到了解决此问题的方法。您可以在 jtemplate 中使用以下构造“转义” textarea 标记:
<{"textarea"} rows="4" cols="20">{$T.Description}<{"/textarea"}>
【讨论】: