2016-04-19 47 views
-1

JavaScriptDjangoに実行して、チェーンフォームを作成する方法を調べようとしています。しかし、最初に私は実行する方法を見つけたいJavaScript。私は簡単なmain.jsファイルを作成しました。このファイルはstatic forderにあります。JavaScriptがDjangoで動作しない

main.jsへのパスをhtmlの頭に追加しました。そして、ページが読み込まれたときにスクリプトを実行する必要があります(私が前進できることを確実にするため)。

alertを関数の先頭に置きましたので、jsが実行されているかどうかを確認できます。でももjschrome 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はPOST要求データにcsrfトークンを送信する必要があるため、おそらく失敗します。 –

答えて

-1

チェックあなたのプロジェクトフォルダwrong.if JSファイルへのパスを持っている場合(と一つに内部の2つのフォルダを持っていますhtmlファイルと1つのJsファイルで)あなたのパスに../あなたはあなたのフォルダの1つ上のレベルになり、ファイルを見つけるために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リンクを使用する –

関連する問題