【问题标题】:In unobtrusive JavaScript, once you've separated content and scripts, what do you do for a script that adds content?在不显眼的 JavaScript 中,一旦你分离了内容和脚本,你会为添加内容的脚本做什么?
【发布时间】:2011-02-25 19:11:30
【问题描述】:

我正在尝试在我的 Rails 3 应用程序中遵循不显眼的 JavaScript 的最佳实践。我已经将我网站上的大部分 HTML 内容和 JavaScript 分开了。但是,我有一个表单,在单击脚本时,它用于添加额外的 HTML 表单元素。这种情况的最佳做法是什么?

由于它是一个表单,我不能只使用脚本预渲染和隐藏元素,导致它显示,因为隐藏的表单元素仍然被提交。

【问题讨论】:

    标签: javascript unobtrusive-javascript


    【解决方案1】:

    您可以通过编程方式创建新内容(通过创建节点等),或者您可以使用模板系统将数据映射到预编码的 HTML 模板中。

    当您隐藏表单的某些部分时,您可以找到所有输入并禁用它们(将“禁用”属性设置为true)以防止它们被提交。

    要“不引人注目”,如果您使用模板系统,则需要以某种方式组织模板。有些人喜欢将它们编码到页面中,有时将它们作为未经解释的原始文本潜入<script> 标记中,其类型可防止浏览器尝试解释它:

    <script type='text/template' id='templateName'>
      <div class='part-of-a-template'>
        <!-- etc etc -->
      </div>
    </script>
    

    或者,您可以提供嵌入到 JavaScript 或 JSON 数据中的模板,可能通过响应模板动态请求的服务器端设施。你如何做取决于你的需求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-29
      • 2014-05-27
      • 1970-01-01
      • 2017-01-22
      • 1970-01-01
      • 2013-01-19
      • 2017-04-21
      • 1970-01-01
      相关资源
      最近更新 更多