2016-04-07 19 views
0

Ich habe den folgenden Code, der nicht wie erwartet funktioniert. Jedes Mal, wenn wieder der Status 1 ist, wird der Code nicht in dem ersten if-Anweisung endet, sondern weiter nach oben auszuführen Rückkehr und die Ausführung der Ajax-Anforderung:e.preventDefault stoppt das Formular nicht beim Senden

$("form#myForm").submit(function(e){ 
     var formData = new FormData($(this)[0]); 
     $.ajax({ 
      url: "/app/user", 
      type: 'POST', 
      data: formData, 
      async: false, 
      success: function (data) { 
       var parseData = JSON.parse(data); 
       var message = parseData.msg; 
       var status = parseData.status; 

       if (status == "1"){ 
        console.log("one"); 
       } else if(status == "2"){ 
        console.log("two"); 
       } else if (status == 3){ 
        console.log("three"); 
       } 
      }, 
      cache: false, 
      contentType: false, 
      processData: false 
     }); 
     e.preventDefault(); 
    }); 
+1

e.preventDefault(); vor dem var = formatData = new ...... stellen Sie auch sicher, dass Ihre $ ("form # myForm") Auswahl korrekt ist – DevWL

+0

@GlupiJas wenn '$ (" form # myForm ")' falsch war, würde die Funktion nie aufgerufen werden, Sie haben es auf die 'e.preventDefault()' obwohl – DelightedD0D

+0

synchrone Anfragen sind eine schlechte Idee, sollten Sie es nicht verwenden. – epascarello

Antwort

1

Ihre e.preventDefault() soll vor der Ajax aufgerufen werden .

Verwandte Themen