【问题标题】:unterminated string literal error for a django template tagdjango 模板标签的未终止字符串文字错误
【发布时间】:2014-08-08 16:13:09
【问题描述】:

我有以下 sn-p 代码,它给了我未终止的字符串文字错误

$(function() {
             $('#addDropdown').click(function() {
             var $d = $('{{ form |bootstrap }}').fadeIn().delay(1000);   
             $('#dropdownContainer').append($d);
             });
             });

我看过unterminated string literal的问题 发现是因为多行问题。我的 {{ form |bootstrap }} 有问题中提到的多行代码。那么我该如何处理这个问题

【问题讨论】:

  • 添加 });在代码的末尾,因为这是关闭你的 $(function(){
  • 我认为您想在 javascript 之外的其他地方呈现表单,然后通过一些类/id 选择器找到它并在找到的元素上调用 fadeIn()
  • 我想在一个div中添加多个(用户通过按钮点击给出的未知数字)表单。每个表单都包含一个下拉菜单。淡入只是为了显示平滑添加元素的过渡。跨度>

标签: javascript jquery django


【解决方案1】:

一般来说,要与 JavaScript 一起使用,您应该使用 |escapejs 过滤器:

var $d = $('{{ value|escapejs }}');

但是,作为最佳实践,您最好将{{ form|bootstrap }} 放在 HTML 中,并使用 JavaScript 来淡入:

<div id="djangoForm" style="display:none">{{ form|bootstrap }}</div>
<script>
    $('#addDropdown').click(function() {
         $('#dropdownContainer').append($('#djangoForm'));
    }
</script>

【讨论】:

  • 谢谢第二个解决方案是我正在寻找的
  • 我可以做可变次数而不是只做一次吗??
  • 可变次数做什么?你能澄清一下或举个例子吗?
  • 像用户点击一样多次添加表单。假设如果我点击两次我必须显示两个表单
  • 啊!在这种情况下,您可能需要克隆 $('#djangoForm') 的内容而不是附加它:$('#dropdownContainer').append($($('#djangoForm').html())); - 试试这个
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-01
  • 2020-09-02
  • 2016-04-15
  • 1970-01-01
相关资源
最近更新 更多