Initialisieren jQuery validate () - Funktion auf mehrere dynamisch Hinzugefügt werden, Formen

Es wurde vorgeschlagen, dass es am besten ist, zum initialisieren einer $('#form').validate({}) Funktion die beim laden der Seite, anstatt auf ein click-Ereignis: jquery.form/validate plugin erlauben nur Einreichen, wenn die Eingabe geändert wird

Frage ich mich, wie dies zu tun für mehrere dynamisch hinzugefügte Formen, ohne das einwickeln der $('#form').validate({}) Funktion innerhalb eines on('click', 'input[type="submit"]', Funktion.

Diesen code zum Beispiel:

var id="some identifier for the specific form that is submitted";
`$('#form'+id).validate({})`
  1. Wie funktioniert diese eindeutige Kennung, id, die erforderlich ist, um zu unterscheiden, jede form erhalten Sie in Erster Linie erstellt?
  2. Und was ist, wenn Sie nicht wissen, die id nachdem die Seite geladen ist, weil es dynamisch erstellt werden, z.B. durch AJAX.

Ich habe das getan, aber das ist ist, was nicht empfohlen:

$(document.body).on('click', 'input[type="submit"]', function(){
  var id=this.id;
  $('#form'+id).validate({});
});

Gedanken?

Dank,
tim

  • Ja, ich habe ein Kommentarsystem. Jeder Kommentar kann kommentiert werden, aber ich weiß nicht, die comment_id für das nächste Formular, bis ich stecken Sie den Kommentar in die Datenbank und gibt die Zeile id. Ich denke, du hast Recht, obwohl ich könnte initialisieren validate() auf die neue form nach meinem templating() - Funktion erzeugt.
  • Der form überhaupt nicht existieren, wenn die Seite geladen wird? Wenn dem so ist, dann anstelle der Initialisierung der validate() auf submit ist, würde ich es initialisieren sofort, nachdem das Formular erstellt ist ($(#myNewform).validate({ options, etc. }))
  • Ja, Sie würde wollen, dass es initialisiert ist, bevor Sie es übermitteln, nicht nach/während.
  • Die Allgemeine Argumentation ist, dass ich ein Spiel mit dem Feuer in der Aufrufliste durch die Initialisierung beim Absenden? Auch Für die Formen, die vorhanden sind, auf die Seite laden, sollte ich Sie initialisieren, jeder von Ihnen mit dieser: $('form').each(function(){...$(this).validate()});?
  • Ja, wenn alle validate() Optionen/Instanzen sind die gleichen für alle vorhandenen Formen, ich sehe nicht, warum Sie konnte nicht initialisiert Sie alle mit einem .each(function(){.
  • ja, die Optionen werden die gleichen sein. Um sicher zu stellen, kann ich eine Klasse Hinzugefügt werden, um den Wahlschalter so: $('.someform').each(function()...?
  • Sie sind möglicherweise nicht mit dem Feuer spielen, aber, wie ich zeigte, in den anderen drei Fragen, erhalten Sie seltsame Probleme, wenn die Formulare nicht überprüfen und Sie versuchen, zu senden, Sie ein zweites mal.
  • ich sehe, vielen Dank für die Klarstellungen. Ich werde über diese links mehr gezielt jetzt und upvote Eure Antworten. Vielen Dank für Ihre Hilfe!
  • Ich weiß es zu schätzen, aber lass mich post eine Antwort unten statt.
  • ok, das wird auch funktionieren, danke

InformationsquelleAutor tim peterson | 2012-06-11
Schreibe einen Kommentar