WinFuture-Forum.de: [javascript] Zwei Funktionen In Einem Formular - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

[javascript] Zwei Funktionen In Einem Formular 2.Funktion erst Ausführen wenn 1.Funktion wahr


#1 Mitglied ist offline   Georg89 

  • Gruppe: Mitglieder
  • Beiträge: 15
  • Beigetreten: 15. Januar 09
  • Reputation: 0

geschrieben 12. Februar 2009 - 15:30

Hallo,

ich habe zwei Funktionen und möchte das die 2te Funktion erst ausgeführt wird, wenn die erste Funktion wahr ist, sonst soll die erste Funktion solange wiederholt werden bis sie wahr ist. Bei der ersten Funktion handelt es sich um chkFormular() also eine ganz normale überprüfung ob die Formularfelder richtig ausgefüllt worden sind. Bei der zweiten Funktion berechnung() handelt es sich um die Preis Bildung durch auswahl bestimmter Radio Buttons. Beide Funktionen funktionieren unabhängig voneinander ohne probleme.

Ich wollte es mit einer dritten Funktion realisieren die beim Klick auf den Sende Button ausgeführt wird, aber leider bisher ohne Erfolg.

function final_funktion() {
if (chkFormular() == true) { berechnung(); }
else if (chkFormular() == false) { chkFormular(); }
}


Kann man das so überhaupt machen oder ist einfach meien Überlegung falsch?

Vielen Dank für Antworten von euch.
0

Anzeige



#2 Mitglied ist offline   aldur 

  • Gruppe: Mitglieder
  • Beiträge: 1
  • Beigetreten: 12. Februar 09
  • Reputation: 0

geschrieben 12. Februar 2009 - 15:54

musst du mit while arbeiten...

while (erstefunktion==true){
//anweisung
}
//was soll nach dem while gemacht werden
0

#3 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.947
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 12. Februar 2009 - 16:21

var checked = chkFormular();

while (!checked) {
	checked = chkFormular();
}

berechnung();

0

#4 Mitglied ist offline   Georg89 

  • Gruppe: Mitglieder
  • Beiträge: 15
  • Beigetreten: 15. Januar 09
  • Reputation: 0

geschrieben 12. Februar 2009 - 16:32

@Witi Gute Idee aber leider hängt sich das Skript dann beim ausführen auf und es geht garnichts mehr....
@All Aber danke für den Tipp mit der While schleife das bringt mich dem Ziel schon etwas näher

Dieser Beitrag wurde von Georg89 bearbeitet: 12. Februar 2009 - 16:39

0

#5 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.947
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 12. Februar 2009 - 16:40

Dann liefert chkFormular wohl nie true, sondern immer false zurück.
0

#6 Mitglied ist offline   Georg89 

  • Gruppe: Mitglieder
  • Beiträge: 15
  • Beigetreten: 15. Januar 09
  • Reputation: 0

geschrieben 12. Februar 2009 - 16:51

Oh sorry es funktioniert doch, ABER wenn die Funktion chkFormular() false ist, also irgend ein wert falsch eingegeben worden ist dann hängt die Funktion in einer endlose schleife und die Meldung wird auf Dauer ausgegeben und ich kann den browser nur noch mit Task beenden schließen. Wie kann ich diese Endlosschleife umgehen? Wenn chkFormular() true ist dann hängt die Funktion sich auf komplett auf und es geht garnix mehr.

Dieser Beitrag wurde von Georg89 bearbeitet: 12. Februar 2009 - 17:01

0

#7 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.947
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 12. Februar 2009 - 17:11

Dann darf es natürlich keine Schleife sein.

Wir sind davon ausgegangen, dass chkFormular die Eingaben verarbeitet und so lange wartet, bis neue Eingaben folgen.

Für dich würde ergo folgendes ausreichen:
if (chkFormular()) {
	berechnung();
} else {
	// hier eine Fehlermeldung ausgegeben, dass Eingaben nicht korrekt waren.
}

0

#8 Mitglied ist offline   Georg89 

  • Gruppe: Mitglieder
  • Beiträge: 15
  • Beigetreten: 15. Januar 09
  • Reputation: 0

geschrieben 13. Februar 2009 - 08:41

Leider funktioniert immernoch nicht, weiß echt nicht was ich da falsch mache :-(

Meine Funktion:

function final_funktion() {

if (chkFormular() == true) {
berechnung(); }
else {
alert("Ihre Eingaben waren nicht korrekt!");}

}


Es wird immer die Meldung "Ihre Eingaben waren nicht korrekt!" Ausgegeben, auch wenn chkFormular() keine Fehlermeldung ausgibt. Die Funktion berechnung() wird in keinem Fall ausgeführt. Wo ist der Fehler, ist chkFormular() nie true? Aber die Funktion hat doch einen boolchichen (oder wie man das schreibt) Rückgabewert oder? D.h. wenn keine Fehlermeldungen ausgegeben werden ist sie true oder muss ich dort noch etwas anderes bei beachten?
0

#9 Mitglied ist offline   lloiser 

  • Gruppe: aktive Mitglieder
  • Beiträge: 92
  • Beigetreten: 13. August 08
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 14. Februar 2009 - 16:43

die function chkFormular() hat nur dann einen Rückgabewert wenn du in der function return stehen hast!
wenn ja, schau mal warum die chkFormular() immer false zurück liefert.
ich nehme mal du überprüfst irgendwelche Textfelder oder ähnliches mit if-Bedinungen. da setzt du einfach jedes mal ein alert() und schaust wo die methode aufhört.
beispiel:
function chkFormular() {
alert("1");
if(document.formular.textfeld1.value=="")
{ return false; }

alert("2");
if(document.formular.textfeld2.value=="")
{ return false; }

alert("3");
if(document.formular.textfeld3.value=="")
{ return false; }

alert("fertig");
return true;
}

wenn jetzt zB textfeld2 leer wäre würden 2 Alert-Boxen aufgehen mit dem Text "1" und "2". wenn alles richtig wäre würde 1, 2, 3 und fertig erscheinen.
Denken ist Arbeit
Arbeit ist Energie
und Energie soll man sparen
0

#10 Mitglied ist offline   Georg89 

  • Gruppe: Mitglieder
  • Beiträge: 15
  • Beigetreten: 15. Januar 09
  • Reputation: 0

geschrieben 19. Februar 2009 - 11:01

Danke ich habe die Lösung jetzt gefunden es lag an dem return true; zum Schluss der chkFormular() Funktion. Hast mir echt sehr geholfen :-) DANKE
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0