【问题标题】:Textarea in jTemplate does not work in ChromejTemplate 中的 Textarea 在 Chrome 中不起作用
【发布时间】:2010-10-26 06:31:00
【问题描述】:

我有一个模板,其中包含模板内的 textarea。在 IE、Firefox 浏览器中,它可以正常工作,但在 Chrome 中则无法正常工作。如果我删除模板中的 textarea,那么它也可以在 Chrome 中运行。谁能帮帮我?

【问题讨论】:

    标签: javascript jquery jtemplates


    【解决方案1】:

    现在在 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 测试

    【讨论】:

    • 这个 bug 在 jTemplates 0.8.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>
    

    【讨论】:

      【解决方案3】:

      我找到了解决此问题的方法。您可以在 jtemplate 中使用以下构造“转义” textarea 标记:

      <{"textarea"} rows="4" cols="20">{$T.Description}<{"/textarea"}>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-14
        • 2018-04-03
        • 2013-12-23
        • 2017-12-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多