【问题标题】:How to display django form object in javascript?如何在 javascript 中显示 django 表单对象?
【发布时间】:2017-06-12 06:32:19
【问题描述】:

我的问题是当我点击我的tr 时,我会显示一个带有{{formFacture.description_article}} 的选择字段,但它不起作用。

当我执行td.innerHTML = "test" 时,它确实有效。

这是我的html代码:

<tbody class="table-article-tbody" id="table_article_tbody">
  {% for ligne in liste_article %}
      <tr id="{{ ligne.ref_article }}">
         <td>{{ ligne.descripton_article }}</td>
         <td>{{ ligne.compte_article }}</td>
      </tr>
 {% endfor %}
 <tr>
    <td>{{ formFacture.description_article }}</td>
    <td>{{ formFacture.compte_article }}</td>
 </tr>
</tbody>

这是我的 javascript 代码:

<script>
        $('#table_article tr').on('click', function(event){
            event.preventDefault();
            if($(this).attr('id') != undefined){
                var $this = $(this);
                $.ajax({
                    type: 'GET',
                    url : "{% url 'updateligneFacture_tem' %}",
                    data: $("#form_facture").serialize(),
                    success : function(data){
                        $('#contenue_fact').html(data);
                        $('#table_article tr:last').remove();
                        var row = $this.attr('id');
                        var tr = document.getElementById(row);
                        var td = tr.insertCell(0);
                        td.innerHTML = "{{ formFacture.description_article }}";
                          alert(tr);

                        $('.selectpicker').selectpicker();
                    },
                    error : function(){
                        alert("Erreur update !!");
                    }
                });
            }
        });
</script>

【问题讨论】:

  • 你试过td.innerHTML = "{{ formFacture.description_article|escape }}";吗?
  • 是的,我试过了,但同样的问题没用
  • 这部分javascript代码的渲染输出是什么? td.innerHTML = "{{ formFacture.description_article }}";“不起作用”是什么意思? javascript 控制台中是否有错误消息?有python异常吗?

标签: javascript python html django django-templates


【解决方案1】:

您正在尝试将点击事件设置为表格:

$("#table_article tr").on("click", ...),但是你应该直接将事件分配给tr

$("#table_article tbody tr").on("click", ...) 

$("#table_article_tbody tr").on("click", ...)

这是主要原因,你没有正确设置事件到表的tr。

此外,您可以使用过滤器转义 django 对象:safe 和 scapejs

{{ object|safe }} 

{{ object|escapejs }}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-14
    • 2014-05-11
    • 1970-01-01
    • 2019-10-16
    相关资源
    最近更新 更多