2016-04-19 10 views
-1

Ich versuche herauszufinden, wie JavaScript in Django ausgeführt wird, um verkettete Formulare zu erstellen. Aber am Anfang möchte ich herausfinden, wie man sogar JavaScript laufen lässt. Ich habe eine einfache main.js Datei erstellt, die in static Forder ist.JavaScript läuft nicht in Django

Ich habe einen Pfad zu main.js in den Kopf von html hinzugefügt. Und das Skript muss laufen, wenn die Seite geladen ist (nur um sicher zu sein, dass ich vorwärts gehen kann).

Ich habe alert am Anfang der Funktion gesetzt, damit ich sehen kann, ob die js ausgeführt wurde. Aber ich kann keine alert noch js in chrome inspect sehen.

Können Sie mir sagen, wo ist das Problem?

main.js

$(document).ready(function(){ 
    alert("OK") 
    $.ajax({ 
     url: "get-possible-levels/", 
     type: "POST", 
     data: {language: $('#id_language').val()}, 
    }) 
}) 

Vorlage:

{% extends 'base.html' %} 
{% load static %} 
{% block head %} 
    <script src="{% static "js/main.js" %}"></script> 
{% endblock %} 
{% block content %} 
    {% if user.is_authenticated %} 
     <form action="" method="post" enctype="multipart/form-data">{% csrf_token %} 
      {{ language_form }} 
      <button value="Update" type="submit">Submit</button> 
     </form> 
    {% endif %} 
{% endblock %} 

Ausblick:

@login_required                      
def create_order(request):                   
    language_form = LanguageLevelForm(request.POST or None)                                  
    return render(request,'auth/jobs/create-job-test.html',context={'language_form':language_form}) 

EDIT: Die main.js scheint ausgeführt werden, aber es tut nicht alert nichts. Ich habe inspect geprüft (und ich habe versucht, Semikolon nach alert('ok') zu setzen):

enter image description here

+0

Ansicht der Seite Quelle in Ihrem Browser. Können Sie das Skript src sehen und darauf klicken? – jonatron

+0

Nein! Es gibt also ein Problem mit dem Blockkopf! Danke, aber trotzdem ... jetzt ist main.js in inspect sichtbar, aber ich kann keine Warnung sehen ... –

+0

Sie verpassen nach Ihrer Warnung ein Semikolon. Auch der Ajax wird wahrscheinlich fehlschlagen, da Sie ein CSRF-Token in den POST-Anfragedaten senden müssen. –

Antwort

-1

Überprüfen Sie, ob Sie den Pfad zur Datei js wrong.if Projektordner hat zwei Ordner innerhalb (eines mit HTML-Dateien und 1 mit JS-Dateien) dann auf Ihrem Weg mit dem ../ gehen Sie eine Ebene auf Ihrem Ordner und gehen Sie dann in Ihren Javascript-Ordner, um die Datei zu finden. Also statt

<script src="{% static "js/main.js" %}"></script> 

Schreib

<script src="../js/main.js"></script> 
+0

In meiner Kolben-Anwendung (die Django ähnlich ist) habe ich einen statischen Ordner und in der statischen Ordner legte den js-Ordner. Der Pfad würde also ungefähr so ​​aussehen: PetrosM

1

Ihre {% load static %} sollte {% load staticfiles %} sein. Versuchen Sie anschließend, die Seite so zu aktualisieren, wie ich es in meinem Kommentar beschrieben habe. BTW Nehmen Sie tatsächlich JQuery? Ihre Frage bezieht sich auf JavaScript. Sie sollten versuchen, vor dem Hinzufügen von JQuery-Code eine Vanilla-JavaScript-Warnung zu verwenden, um sie zu beheben. Wenn Sie erhalten, dass die Arbeit versuchen Sie, diese zu Ihrem <head>

<script src="jquery-1.12.0.min.js"></script> 
+0

Verwenden Sie den CDN-Link, wenn Sie die Datei nicht heruntergeladen haben –