0
<form action="" method="post" class="f-color" id="email-form">
{% csrf_token %}
  <label>Name</label>
  <input type="text">
  <label>From</label>
  <input type="email">
  <label>Message</label>
  <button type="submit">Sent</button>
  </form>
  <div class="mt-5" id="spin" style="display: none;">
    <div class="loader"></div>
  </div>
  <div id="msg"></div>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
   <script>
  $(document).ready(function(){
  $(document).on("submit", "#email-form", function(event){
                   event.preventDefault();
                   $('#spin').show();

    $.ajax({
        url: "{% url 'contact' %}",
        type: "POST",
        data: $("#email-form").serialize(),
        success: function(data){
        $("#spin").hide();
        if(data.status == "success"){
            $("#msg").html("<p class='alert alert-success'>we will get back to you as soon as possible</p>" );
            $("#email-form").reset();
                    }
                }
            })
        })
    })
 </script>

using this code I can submit the form successfully, but after the form submission the message(msg) not showing, the 'if condition statement' is perfectly working (for the testing I gave the alert, the alert was worked) another problem is form reset, for this I'm using

$("#email-form").reset();

but the form dose't reset how can I solve these problems

2 Answers2

0

try

$('#email-form')[0].reset();

https://stackoverflow.com/a/3786702/8640027

0

I got a solution for the resetting form after the ajax form submission

$("#email-form").trigger("reset");