2010-11-30 5 views
1

Ich verwende das jquery validate-Plugin, um eine Validierungsmethode für alle Formulare in einer Anwendung zu erstellen. Verwenden Sie die Funktion jquery each(), um jedes Formular zu durchlaufen und die Methode anzuwenden. Ich möchte den Reset mit den gleichen Methoden erreichen. Wie kann ich das erreichen?So erstellen Sie einen universellen Jquery-Funktionsaufruf zum Validieren und Zurücksetzen

Dies ist der Code, das funktioniert:

$("form").each(function() { 
     $(this).validate(); 
    }); 

Dies ist der Code, der nicht

$("form").each(function() { 
     validator = $(this).validate(); 
     validator.resetForm(); 
     $("#reset").click(function() { 
      validator.resetForm(); 
     }); 
    }); 

tut Bitte geben ..

Antwort

1

Ohne das var Stichwort, ich bin validator als globaler Variable einstellen und ändern, was es mit jeder Schleife eingestellt ist auf (so dass es dann am Ende des mit dem Validator der letzten Form eingestellt werden) nur var hinzufügen, wenn es zu erklären, wie folgt aus:

$("form").each(function() { 
    var validator = $(this).validate(); //add var here 
    validator.resetForm(); 
    $("#reset").click(function() { 
     validator.resetForm(); 
    }); 
}); 

Dies korrigieren wird, so werden Sie jeden <form> einmal zurückgesetzt, rater als die letzten <form>n mal.

+0

Danke Nick .... –

+0

Hat es mit mehreren Formularen auf der Seite sowie –

+0

$ ("Formular") zu arbeiten. Je (function() { var validator = $ (this) .validate(); // add var hier validator.resetForm(); $ (this) .kinder ("# reset"). click (function() { validator.resetForm(); }); }); –

1

dies vielleicht versuchen?

$("form").each(function() { 
var validator = $(this); 
validator.validate(); 
validator.resetForm(); 
$("#reset").click(function() { 
    validator.resetForm(); 
}); 
}); 
+0

funktioniert oder nicht ?? – Breezer