Archivlink: javarea.de Forum > JavaScript > Formular > onsubmit > return false, wie wieder aufheben?
Vollständigen Link anzeigen: javarea.de Forum > JavaScript > Formular > onsubmit > return false, wie wieder aufheben?

Pages: [1]

geschrieben von anaumann2005 am 27.04.2008 - 20:36
Habe gerade folgenes Problem:
Wenn das Formular abgesendet wird, wird eine function bei onsubmit aufgerufen.
In dieser function steht folgendes:
HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
var st = new Test();
st.run({
  onStart: function() {
  }
  ,onEnd: function(sd) {
 	  alert('complete');
  }
});

// return false;

Problem ist das Formular wird gesendet bevor das "complete" ausgegeben wird.
Wenn ich das "return false;" rein mache, kommt das "complete", jedoch schaffe
ich es nicht das Formular dann abzusenden.

Wer kennt hier eine Lösung?

Gruss Alex

geschrieben von Klaush am 28.04.2008 - 10:15
Wie sieht denn dein Formular aus, sprich dein <form> Tag?

Du hättest mehr Erfolg, wenn du die Return Anweisung in deiner Funktion einbinden würdest.
HTML-Quelltext
1: 
2: 
3: 
4: 
onEnd: function(sd) {
 	  alert('complete');
  return true;
}

geschrieben von anaumann2005 am 28.04.2008 - 18:53
Zitat
 Original geschrieben von Klaush am 28.04.2008 - 10:15
Wie sieht denn dein Formular aus, sprich dein <form> Tag?


da wird nur die function aufgerufen ...

habe die function jetzt aufgeteilt und rufe es über die Inputfelder auf. Da bei meinen Test es Probleme gab wenn ich es einmal auf false gesetzt habe, danach hatte true keine Auswirkung mehr.

geschrieben von Klaush am 29.04.2008 - 13:02
Mit dem Aufteilen der Funktionen hebt sich das Problem doch nicht auf?

Innerhalb der Funktion musst du bei Misserfolg einer Prüfung ein return false setzen. Erst wenn alle Bedingungen erfüllt wurden, wird eine return true am Ende der Funktion gesetzt.

Bsp:
HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
<SCRIPT LANGUAGE="JavaScript">
<!--
function vform() 
{  
  if (document.form.NAME.value=="")
  { 
		alert('Namensfeld ist leer!'); 
		return false; 
	}
  if (document.form.DESCRIPTION.value=="")
  { 
		alert('Beschreibung ist leer'); 
		return false; 
	}

	return true;
}

// -->
</script>

<form name="form" method="post" action="" onSubmit="return vform(this.form)">
<font class="stn"><b>Name:</b><br>
<input type="text" size=40 name="NAME"><br>
<font class="stn"><b>Beschreibung:</b><br>
<TEXTAREA NAME="DESCRIPTION" ROWS=4 COLS=40 wrap=virtual></TEXTAREA><br>
<input type="submit" name="submit" value="Senden"> <input type="reset" value="Reset"></form>


Powered by: JBB v.2.0.4 Copyright ©2000-2006, www.javarea.de.