molily: jQuery Abfrage (return false)

Beitrag lesen

Hallo,

$('#myForm').submit(function(){

äußere Funktion 1, wird einmal beim Absenden des Formulars aufgerufen

  $('#myForm input[type=text]').each(function(n,element){  

innere Funktion 2, wird für jedes Feld aufgerufen (Iteratorfunktion)

  	if ($(element).val()=='') {  
  		alert('Field '+element.id+' must have a value');  
  		return false;  

Mit diesem return beendest du die innere Funktion 2.
Das ist in Ordnung, damit stoppt die each-Schleife und weitere Elemente werden nicht geprüft.
Du willst aber zusätzlich, dass die äußere Funktion 1, false zurückgibt. Das tut sie nicht automatisch, wenn du aus Funktion 2 zurückspringst. return bedeutet ja nur: Beende die aktuelle Funktion und springe zurück zur Codestelle, wo die Funktion aufgerufen wurde.

Das kannst du z.B. erreichen, indem du eine Variable in Funktion 1 notierst und diese in Funktion 2 änderst, wenn ein Fehler gefunden wurde.

var korrekt = true;

Dann in Funktion 2 korrekt = false setzen, wenn ein Fehler gefunden wurde.

Am Ende von Funktion 1 dann return korrekt;. Dann wird false zurückgegeben, wenn ein Fehler gefunden wurde.

Mathias