2016-07-11 5 views
2

Ich versuche, Ajax-Funktion einmal Formular validieren, aber es funktioniert nicht für mich. Unter jquery on-submit Methode funktioniert gut für mich.Wie kann ich Funktion in Submithandler mit jquery Validierung aufrufen?

$('#promotionAdd').on('submit',(function(e) { 
     e.preventDefault(); 
     var formData = new FormData(this); 
     promotionAdd(formData); 
     return false; 
    })); 

Aber ich muss dieselbe Sache in Submithandler aufrufen, die nicht funktioniert.

$(document).ready(function() { 
     $('#promotionAdd').validate({ // initialize the plugin 
      rules: { 
       mtitle: { 
        required: true, 
        minlength: 3, 
       } 
      }, 
      messages: { 
       mtitle: "Please enter Promotion Title", 
      }, 
      submitHandler: function (form) { // for demo 
       //alert(this); 
       e.preventDefault(); 
       var formData = new FormData(this); 
       promotionAdd(formData); 
       return false; 
      } 
     }); 
    }); 

Kann mir jemand sagen, wo ich falsch liege und wie ich es beheben kann. Ich würde es gerne würdigen. Danke

Antwort

2

In der submitHandlerthis bezieht sich auf das Validierungs-Plugin, nicht die Form, auf die das Plugin aufgerufen wurde. Verwenden Sie stattdessen den Parameter form, der an die Funktion übergeben wird.

Beachten Sie auch, dass preventDefault() einen Fehler verursacht, da e nicht definiert ist und return false nichts tut. Sie werden hier auf keinen Fall benötigt, da das Validierungs-Plugin die Verhinderung der Formularübergabe für Sie übernimmt. Versuchen Sie dies:

submitHandler: function (form) { 
    var formData = new FormData(form); // use 'form' here 
    promotionAdd(formData); 
} 
+0

Danke für den Austausch von Wissen mit mir –

Verwandte Themen