Funktion, Mehrere Anweisungen
Spider
- javascript
0 Felix Riesterer
0 Spider
1 ChrisB1 Felix Riesterer
0 Spider
Hier der Script
function Zeitauswahl () {
if (document.Kontakt_Formular.erreichbar_von.selectedIndex == 0)
document.Kontakt_Formular.erreichbar_bis.selectedIndex = 0;
else if (document.Kontakt_Formular.erreichbar_von.selectedIndex == 1)
document.Kontakt_Formular.erreichbar_bis.selectedIndex = 1;
document.getElementById('0').disabled = true;
(in dieser Zeile wird ein Fehler angezeigt, könnte an einer fehlenden Klammer, oder Punkt, oder, oder liegen. Ich sehe es leider nicht) else if (document.Kontakt_Formular.erreichbar_von.selectedIndex == 2)
document.Kontakt_Formular.erreichbar_bis.selectedIndex = 2;
document.getElementById('0').disabled = true;
document.getElementById('1').disabled = true;
else if (document.Kontakt_Formular.erreichbar_von.selectedIndex == 3)
document.Kontakt_Formular.erreichbar_bis.selectedIndex = 3;
document.getElementById('0').disabled = true;
document.getElementById('1').disabled = true;
document.getElementById('2').disabled = true;
}
Lieber Spider,
Hier der Script
und wo die Frage?
Liebe Grüße,
Felix Riesterer.
Felix Riesterer.
Moin
Mittendrin ;-)
in dieser Zeile wird ein Fehler angezeigt...
da fehlt was. Hab da noch eine Anweisung hinzugefügt. Und da ist irgenwo der Wurm drin.
Hi,
bitte formatiere Quellcode entsprechend, wenn du ihn hier postest - siehe </hilfe/bedienung.htm#syntax-highlighting>
function Zeitauswahl () {
if (document.Kontakt_Formular.erreichbar_von.selectedIndex == 0)
document.Kontakt_Formular.erreichbar_bis.selectedIndex = 0;
else if (document.Kontakt_Formular.erreichbar_von.selectedIndex == 1)
document.Kontakt_Formular.erreichbar_bis.selectedIndex = 1;
document.getElementById('0').disabled = true;
//(in dieser Zeile wird ein Fehler angezeigt, könnte an einer fehlenden Klammer, oder Punkt, oder, oder liegen. Ich sehe es leider nicht)
else if (document.Kontakt_Formular.erreichbar_von.selectedIndex == 2)
Wenn du hinter einer `if`{:.language-javascript}-Verzweigung keine geschweiften Klammern setzt, dann ist nur die nächste Anweisung von der Abfrage abhängig.
Beim ersten `else`{:.language-javascript} passt das in deinem Beispiel noch - aber danach hast du ein `if`{:.language-javascript} ohne geschweifte Klammern, aber mit zwei Anweisungen danach. Die erste davon gehört noch zur Verzweigung, die zweite ist davon unabhängig - und das nachfolgende `else`{:.language-javascript} hat damit kein vorausgehendes `if`{:.language-javascript} mehr, also stellt es einen Syntaxfehler dar.
MfG ChrisB
--
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
Lieber ChrisB,
bitte formatiere Quellcode entsprechend
da stimme ich Dir absolut zu.
function Zeitauswahl () {
if (document.Kontakt_Formular.erreichbar_von.selectedIndex == 0)
document.Kontakt_Formular.erreichbar_bis.selectedIndex = 0;
else if (document.Kontakt_Formular.erreichbar_von.selectedIndex == 1)
document.Kontakt_Formular.erreichbar_bis.selectedIndex = 1;
document.getElementById('0').disabled = true;
wieso rückst Du die letzte Zeile ebenfalls ein? Sie wird nicht mehr in der if-Anweisung fallbezogen behandelt, sie gilt immer!
Liebe Grüße,
Felix Riesterer.
--
ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
bitte formatiere Quellcode entsprechend, wenn du ihn hier postest - siehe </hilfe/bedienung.htm#syntax-highlighting>
Wußte bis jetzt nicht wie und, dass man es überhaut machen kann. Ja, werde ich machen.
Wenn du hinter einer
if
-Verzweigung keine geschweiften Klammern setzt, dann ist nur die nächste Anweisung von der Abfrage abhängig. Beim erstenelse
passt das in deinem Beispiel noch - aber danach hast du einif
ohne geschweifte Klammern, aber mit zwei Anweisungen danach. Die erste davon gehört noch zur Verzweigung, die zweite ist davon unabhängig - und das nachfolgendeelse
hat damit kein vorausgehendesif
mehr, also stellt es einen Syntaxfehler dar.
Hat ein wenig gedauert(musste ein paar mal durchlesen), aber jetzt hab ich's.
Vielen Dank ChrisB
MfG Spider
Lieber Spider,
ich zeige Dir mal (analog zu ChrisB), wie Du Dein Posting hättest formatieren müssen(!), damit erstens Unbedarfte wie ich _gleich_ verstehen, was Du willst, und damit zweitens Du selbst schon beim Fragen eventuell die Antwort findest, bevor Du Dein Posting überhaupt abschickst (ist mir oft genug so passiert).
-----------------
Liebes Forum,
in Zeile #xy meldet mein Browser folgenden Fehler:
[FehlerMeldungText]
Mir ist nicht klar, was mir diese Meldung sagen will. Hier ein Ausschnitt aus meinem Code, in dem die entsprechende Zeile durch einen Kommentar markiert ist:
function Zeitauswahl () {
if (document.Kontakt_Formular.erreichbar_von.selectedIndex == 0)
document.Kontakt_Formular.erreichbar_bis.selectedIndex = 0;
else if (document.Kontakt_Formular.erreichbar_von.selectedIndex == 1)
document.Kontakt_Formular.erreichbar_bis.selectedIndex = 1;
document.getElementById('0').disabled = true; // ### Fehlermeldung hier ###
else if (document.Kontakt_Formular.erreichbar_von.selectedIndex == 2)
document.Kontakt_Formular.erreichbar_bis.selectedIndex = 2;
document.getElementById('0').disabled = true;
document.getElementById('1').disabled = true;
else if (document.Kontakt_Formular.erreichbar_von.selectedIndex == 3)
document.Kontakt_Formular.erreichbar_bis.selectedIndex = 3;
document.getElementById('0').disabled = true;
document.getElementById('1').disabled = true;
document.getElementById('2').disabled = true;
}
-----------------
Spätestens jetzt hätte Dir auffallen sollen, dass Du Deine in if-Anweisungen gekapselten Anweisungen _immer_(!!) in geschweifte Klammern setzen solltest, auch wenn man diese bei einer einzelnen Anweisung weglassen könnte. Vergleiche:
if (success) {
alert("Hurra!");
alert("Nochmal HURRAAAA!!!!");
}
if (score > currentHighScore)
alert("Bestes Ergebnis!");
alert("Schönes Spiel!");
if (again) {
return start();
}
alert("Auf Wiedersehen.");
Wir sehen im ersten if-Block zwei Anweisungen, die beide nur dann ausgeführt werden sollen, wenn in der Variablen "success" ein Wert steht, der als true
interpretiert werden kann. Dafür benötigt es die geschweiften Klammern, da sonst der zweite alert-Aufruf immer(!) ausgeführt würde (wie im zweiten Fall nach "Bestes Ergebnis" mit "Schönes Spiel").
Um solche Stolperfallen zu vermeiden, notierst Du einfach immer(!!) die geschweiften Klammernpaare, auch wenn darin nur eine einzelne Anweisung steht. Dann sollte auch der JavaScript-Parser bei einem "unverhofften" else
nicht mehr ins Stottern kommen.
document.getElementById('0')
Noch etwas: ID-Werte müssen mit einer Nicht-Ziffer beginnen (z.B. Buchstabe oder Unterstrich). Das ist Vorschrift laut Spezifikation.
Liebe Grüße,
Felix Riesterer.
Noch etwas: ID-Werte müssen mit einer Nicht-Ziffer beginnen (z.B. Buchstabe oder Unterstrich). Das ist Vorschrift laut Spezifikation.
Danke, gut zu wissen. Das war einfach besser für mich damit ich die Übersicht nicht verliere. In etwa so...
selectedIndex = 1 <-----> getElementById('1')
Danke noch mal für die Erklärung.