2017-04-07 20 views
0

我正在開發我的Django應用程序,並且我想使用JavaScript來改進我的網站。如果表單與JQuery有效,請確認表單和顯示消息

我有一個表格,我想顯示兩件事情:

  • 確認表單之前提交
  • 如果表單同時提交,顯示一條消息:「保存表單」

這是我第一次使用JS,我需要幫助來完成這個過程。

這是我的代碼:

<form class = "form" method='POST' action=''> {% csrf_token %} 
     <br></br> 
     {{ form.as_p}} 
     <br></br> 

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

    <script> 
     $('#form').submit(function() { 
     var c = confirm("Click OK to continue?"); 
     return c; //you can just return c because it will be true or false 
    }); 
    </script> 

如果我的方式是有效的,並保存:

<script type="text/javascript" > 
       $(document).on('Valider', 'form.form', function(form) { 
       var $form = $(form); 
       $.ajax({ 
        url:"/path_to_my_html_file/BC_form2.html", 
        type: "POST", 
        success: function(form) { 
        alert("Form is saved"); 
        } 
       }); 
       }); 
      </script> 

你能幫助我嗎?

謝謝

回答

1

您可以嘗試通過你的目的採取這種代碼:

$('#form').submit(function(e) { 
 
    // Prevents form to be submitted by default post request with page reloading 
 
    e.preventDefault(); 
 
    if (confirm("Click OK to continue?")) { 
 
     // Here you can call your AJAX request 
 
     callAjax($('input[type=text]').val()) 
 
    } 
 
}); 
 

 
function callAjax(value) { 
 
    // Making AJAX request to your endpoint 
 
    // GET ipify just for example 
 
    $.ajax({ 
 
     url:"https://api.ipify.org?format=json", 
 
     type: "GET", 
 
     success: function(form) { 
 
     alert("Form is saved"); 
 
     } 
 
    }); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form id="form"> 
 
    <input type="hidden" value="MOCK FOR CSRF TOKEN" /> 
 
    <br></br> 
 
    <input type="text" required /> 
 
    <br></br> 
 

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

+0

謝謝你的答案,但我有幾個問題。第一個,如果我的表單是有效的(所有字段都填滿了),則不考慮。然後,如果我的表單有效,我有兩個窗口,但是形成'submit'按鈕不起作用^^ – Deadpool

+0

@Valentin如果使用'required'屬性並且沒有填充所有輸入 - 表單提交不會觸發。另外,如果您想添加額外的驗證,則可以在驗證處理程序內部進行驗證,然後再進行確認。所以,如果你的表單無效,那麼你只需向用戶顯示一個錯誤,然後例如用return來停止函數執行。 –

+0

好吧,我必須瞭解你的答案,看看我能做到這一點;)謝謝 – Deadpool

0

使用.valid()在提交功能

$('#form').submit(function() { 
    var isValid=$("#form").valid(); 
      if (isValid) { //If there is no validation error 

      var c = confirm("Click OK to continue?"); 
      if(c){ 
       $.ajax({ 
       url:"/path_to_my_html_file/BC_form2.html", 
       type: "POST", 
       success: function(form) { 
        alert("Form is saved"); 
       } 
       }); 

      } 

      } 
      else { 
      alert('form is not valid');        
      } 

     }); 
</script> 
+0

我必須明白爲什麼我沒有任何警報顯示^^ – Deadpool