2017-04-06 21 views
0

我想在我的Django網站應用程序中實現一些JQuery元素以使其具有動態性。如果Django形成缺少字段的JavaScript alertbox

例如,用戶正在填寫表單並顯示一個警告框,具體取決於我的Django表單是否填充良好。

  • 如果Django的形式很好地填補它會給:「表已創建」

  • 如果Django的形式不正確填寫它會給:「請看看你的形式」

我嘗試了一些東西,我的HTML文件看起來像這樣:

<form class = "form" method='POST' action=''> {% csrf_token %} 
     <br></br> 
     {{ form.as_p}} <!-- Display child part formulary --> 
     <br></br> 

     <button onclick="myFunction()">Valider le formulaire</button> 
    </form> 

     {% if form.is_valid %} 
     <script> 
     function myFunction() { 
      alert("Le formulaire a été créé"); 
     } 
     </script> 
     {% else %} 
     <script> 
     function myFunction() { 
      alert("Le formulaire n'a pas été créé car champ(s) invalide(s)"); 
     } 
     </script> 
     {% endif %} 

我的看法是這樣的:

def BirthCertificate_Form_unique_number(request) : 

    validity = [] 
    #User fill some fields 
    query_social_number = request.GET.get('social_number') 
    query_social_number_father = request.GET.get('social_number_father') 
    query_social_number_mother = request.GET.get('social_number_mother') 

    if request.method == 'POST': 

     form = BirthCertificateForm2(request.POST or None) 

     if form.is_valid() : # Vérification sur la validité des données 
      post = form.save() 
      return HttpResponseRedirect(reverse('BC_treated2', kwargs={'id': post.id})) 
    ... 

如何將這個AlertBox寫入我的文件?

謝謝!

PS:我用JQuery很新。我用它第一次

編輯:

我想這樣的事情,但似乎沒有任何警示:

<form class = "form" method='POST' action=''> {% csrf_token %} 
       <br></br> 
       {{ form.as_p}} <!-- Display child part formulary --> 
       <br></br> 

       <button type="input">Valider</button> 
      </form> 


      <script type="text/javascript" > 
       $(document).on('Valider', 'form.form', function(form) { 
       var $form = $(form); 
       $.ajax({ 
        url:"/path_to_directory/BC_form2.html", 
        type: "POST", 
        success: function(form) { 
        alert("L'acte de naissance a été créé"); 
        } 
       }); 
       }); 
      </script> 

回答

1

您可以使用Ajax來提交您的數據,查看然後再驗證數據並返回響應的json。之後,您可以根據您的回報顯示警報。您可以根據您的需要使用$.ajax()$.get(),$.post()等功能。只要確保你可以根據你的反應來處理Ajax中的數據。

修訂

爲您編輯,你必須瞭解更多的jQuery的情況。取而代之的

$(document).on('Valider', 'form.form', function(form)

你應該

$(document).on('event', 'selector', function(form)

對於event是一種輸入或某事發生,你想處理,例如,當你要處理單擊然後使用click的或者改變你可以使用change

對於selector是你從你的html元素獲得的某種id,類或其他類型。所以你的情況,如果你想使用click事件的代碼會像

$(document).on('click', '.btn-validate', function(e){ 
    var form = $(".form").serialize(); 
    $.ajax({ 
     url: "url_on_your_view and already registered in you url.py", 
     type: "POST", 
     success:function(response){ 
      alert("L'acte de naissance a été créé"); 
     } 
    }); 
} 

你的按鈕,您可以更新到

<button type="input" class="btn-validate">Valider</button> 
+0

好這似乎是我做了什麼。我會看到更多關於ajax的文檔和我的項目的可能性。 – Andro

+0

@Andro,我已經更新了我的答案。 – Marprin