2016-04-19 6 views
-1

Я пытаюсь выяснить, как запустить JavaScript в Django, чтобы создать прикованные формы. Но сначала я хочу узнать, как даже запустить JavaScript. Я создал простой файл main.js, который находится в static forder.JavaScript не работает в Django

Я добавил путь в main.js в начало html. И сценарий должен запускаться при загрузке страницы (чтобы быть уверенным, что я могу сделать шаг вперед).

Я положил alert в начале функции, чтобы я мог видеть, был ли запущен js. Но я не вижу ничего alert или js в chrome inspect.

Не могли бы вы, ребята, сказать мне, где проблема?

main.js

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

шаблона:

{% 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 %} 

Вид:

@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: main.js, кажется, выполнена, но это не alert ничего. Я проверил inspect (и я попытался поставить точку с запятой после alert('ok')):

enter image description here

+0

Просмотрите источник страницы в своем браузере. Вы можете увидеть скрипт src и щелкнуть его? – jonatron

+0

Нет! Так что проблема с блочной головой! Спасибо, но все же ... теперь, main.js видна в инспектировании, но я не вижу никакого предупреждения ... –

+0

Вам не хватает точки с запятой после вашего предупреждения. Кроме того, ajax, вероятно, завершится неудачно, поскольку вам нужно отправить токен csrf в данные запросов POST. –

ответ

-1

Проверьте, если у вас есть путь к файлу Js wrong.if папки проекта есть 2 папки внутри (один с html-файлы и 1 с Js-файлами), то на вашем пути с помощью ../ вы поднимаетесь на один уровень в своей папке, а затем заходите в свою папку javascript, чтобы найти файл. Таким образом, вместо

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

записи

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

В моем приложении фляги (которое похоже на django) я использовал статическую папку и внутри статическая папка помещает папку js. поэтому путь будет примерно таким: PetrosM

1

Ваш {% load static %} должен быть {% load staticfiles %}. После этого попробуйте обновить страницу так, как я описал в своем комментарии. Вы действительно включаете JQuery? Ваш вопрос о JavaScript. Прежде чем добавлять код JQuery, просто попробуйте использовать оповещение JavaScript для ванили, чтобы устранить его. Если вы можете это исправить, попробуйте добавить это к вашему <head>

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

используйте ссылку CDN, если у вас нет загруженного файла –

Смежные вопросы