break-Ersatz für if-Abfragen?
Jens Marder
- javascript
0 kaepten0 Jens Marder0 kaepten0 Jens Marder0 Ingo Turski0 kaepten
Hallo alle Wissenden,
ich bin hier bisher leider noch nicht fündig geworden auf der Suche nach einem Ersatz für 'break' (das es bei if-Abfragen nicht gibt) in JS. Wenn die if-Abfrage mit false beantwortet wird, soll der gesamte JavaScipt-Block beendet werden.
mfg
Hallo Jens
Wenn die if-Abfrage mit false beantwortet wird, soll der gesamte JavaScipt-Block beendet werden.
Was meinst Du mit JavaScript Block? Was genau soll nicht mehr ausgeführt werden von wo bis wo?
Mich dünkt, dass du das Sturkturell etwas anders vorgehen müssen - Deiner Frage nach zu beurteilen.
kaepten
Hallo,
Was meinst Du mit JavaScript Block? Was genau soll nicht mehr ausgeführt werden von wo bis wo?
Es handelt sich insgesamt um eine Überprüfung, was in einem Formular eingegeben wird (HTML+PHP). Es wird abgefragt, ob ausschließlich Zahlen eingegeben wurden und überhaupt etwas eingegeben wurde. Falls dies false ist, so kommt ein alert und der Rest soll abgebrochen werden (die gesamte Funktion).
mfg
Jens
Es handelt sich insgesamt um eine Überprüfung, was in einem Formular eingegeben wird (HTML+PHP). Es wird abgefragt, ob ausschließlich Zahlen eingegeben wurden und überhaupt etwas eingegeben wurde. Falls dies false ist, so kommt ein alert und der Rest soll abgebrochen werden (die gesamte Funktion).
Ok, das habe ich angenommen. Kannst Du sagen in welchem Kontext aber der JS-Code steht? Es ist also eine Funktion die nicht weiter ausgeführt werden soll, aber wie schaut die aus? Poste doch mal den Code der davon betroffen ist.
kaepten
Hier dann ein Code-Ausschnitt (ist noch lange nicht fertig):
<script language='javascript'>
<!--
function pruefen(){
var koerpergroesse= document.eingabe.koerpergroesse.value;
var alter = document.eingabe.alter.value;
var status = true;
var Zahlen=/[1]+(,[0-9]{1,2})$/;
if (((Zahlen.test(alter)) == false || alter.length == 0)
{
alert("Menge des Getränks ist falsch!");
status = false;
}
if (((Zahlen.test(koerpergroesse)) == false || koerpergroesse.length == 0)
{
alert("Körpergroesse ist falsch!");
status = false;
}
it status = true
{
document.eingabe.method = "post";
document.eingabe.action = "<? echo $PHP_SELF ?>";
document.eingabe.submit();
-->
</script>
Nun wird jedoch wahrscheinlich der Fall auftreten, dass ein User, der garnix eingibt, für jedes Feld extra eine Fehlermeldung bekommt (sind ca. 10 Felder).
mfg
0-9 ↩︎
Hi,
setze einfach die schließenden "}" am ende - und ergänze dabei die fehlende klammer der letzten abfrage.
freundliche Grüße
Ingo
Hallo nochmal,
ja, ich habe zwei Klammern nicht geschlossen, das stimmt. Allerdings ändert das doch nichts, an meinem Problem oder sehe ich da jetzt etwas falsch??
Er soll ja im Falle eines vorübergehenden status = false sofort den Rest abbrechen..
mfg
Hi,
Er soll ja im Falle eines vorübergehenden status = false sofort den Rest abbrechen..
ja und? macht er doch bzw. führt den nachfolgenden code nicht aus, wenn die bedingung nicht erfüllt ist:
if (bedingung1) { // aktionen 1
if (bedingung2) { // aktionen 2
if (bedingung3) { // aktionen 3
}
}
}
freundliche Grüße
Ingo
Hallo Jens
So - ich denke nun kann ich helfen:
1. Ansatz
Eine Funktion kannst Du vorzeitig mit return verlassen. Das wäre dann etwa hier:
function pruefen(){
var koerpergroesse= document.eingabe.koerpergroesse.value;
var alter = document.eingabe.alter.value;
var status = true;
var Zahlen=/[1]+(,[0-9]{1,2})$/;if (((Zahlen.test(alter)) == false || alter.length == 0)
{
alert("Menge des Getränks ist falsch!");
return false;
}
...
Ein 2. Ansatz wäre ein Flag zu setzen und dieses dann in jede Bedingung einbinden, so dass wenn das Flag einmal false gesezt wurde die weiteren Bedingung nicht ausgewertet werden:
// Ganz am Anfang ist alles Ok = true
flag = true;
if (flag && ((Zahlen.test(alter)) == false || alter.length == 0)
{
alert("Menge des Getränks ist falsch!");
// Es gab ein Fehler = false
flag = false;
}
if (flag && ((Zahlen.test(koerpergroesse)) == false || koerpergroesse.length == 0)
{
alert("Körpergroesse ist falsch!");
flag = false;
}
Aber ich denke so wie Du das vorhast ist die 1. Variante die sinnvollere.
Alles klar?
HTH
kaepten
0-9 ↩︎