2017-01-26 4 views
1

Mein Problem ist, wenn ich in meine tr klicke, zeige ich ein Choicefield mit {{formFacture.description_article}} aber es funktioniert nicht.Wie django Form-Objekt in Javascript anzeigen?

Wenn ich td.innerHTML = "test" tun, funktioniert es.

Hier ist mein HTML-Code:

<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> 

Und hier ist mein Javascript-Code:

<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> 
+0

Haben Sie versucht, 'td.innerHTML = "{{formFacture.description_article | escape}}";'? –

+0

Ja, ich habe es versucht, aber das gleiche Problem, es funktioniert – 123nada1

+0

Was ist die gerenderte Ausgabe von diesem Teil des Javascript-Codes? 'td.innerHTML =" {{formFacture.description_article}} ";' Und was meinst du mit "funktioniert nicht"? Gibt es eine Fehlermeldung in der JavaScript-Konsole? Gibt es eine Python-Ausnahme? –

Antwort

0

Sie versuchen, das Click-Ereignis auf einen Tisch gesetzt, wie:

$ (“ #table_article tr "). on (" click ", ...), aber Sie sollten das Ereignis dem tr direkt zuweisen

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

oder

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

Es ist der Hauptgrund, Sie setzen nicht das Ereignis an den tr der Tabelle richtig.

Auch können Sie die django Objekte mit den Filtern entkommen: sicher und scapejs

{{ object|safe }} 

{{ object|escapejs }}