Zur Navigation

Warum funktioniert die if Schleife nicht? Vielen dank für die Hilfe

1 schlitzebube

<!DOCTYPE html>
<html>
<head>
<title>Javascript</title>
</head>

<script>
function auswahl() {
Ton1 = document.getElementById("mySelect").value;
document.getElementById("demo").innerHTML = "Der erste Ton ist: " + Ton1;

     Ton2 = (document.Tonleiter.Ton2.value);
     Ton3 = (document.Tonleiter.Ton3.value);
     Ton4 = (document.Tonleiter.Ton4.value);
     Ton5 = (document.Tonleiter.Ton5.value);
     Ton6 = (document.Tonleiter.Ton6.value);
     Ton7 = (document.Tonleiter.Ton7.value);
}

function prüfen() {
document.getElementById("mc").onclick;

if (Ton2 =='' || Ton3 =='' || Ton4 =='' || Ton5 =='' || Ton6 =='' || Ton7 ==''){
     alert("Bitte alle Felder ausfüllen.");

} else if (Ton2 =='d' || Ton3 =='e' || Ton4 =='f' || Ton5 =='g' || Ton6 =='a' || Ton7 =='h')  {
          alert("Alles Richtig.");

} else {  alert("mindestens ein Ton ist falsch");

}}

</script>

<body>

<select id="mySelect" onchange="auswahl()">
  <option value="Auswahl">Auswahl</option>
  <option value="c">c</option>
  <option value="d">d</option>
  <option value="e">e</option>
  <option value="f">f</option>
  <option value="g">d</option>
  <option value="a">e</option>
  <option value="h">f</option>
</select>

<p id="demo"></p>

<label>Ton 2: </label>
<input type="text" name="Ton2" size="2">

<label>Ton 3: </label>
<input type="text" name="Ton3" size="2">

<label>Ton 4: </label>
<input type="text" name="Ton4" size="2">

<label>Ton 5: </label>
<input type="text" name="Ton5" size="2">

<label>Ton 6: </label>
<input type="text" name="Ton6" size="2">

<label>Ton 7: </label>
<input type="text" name="Ton7" size="2">

<input type="button" value="check" id="mc" onclick="prüfen()">


</body>
</html>

[Edit Jörg: Code-Block eingfügt]

08.10.2018 11:11 | geändert von Jörg: 08.10.2018 11:26

2 Jörg Kruse

In der JavaScript-Konsole (in den Entwicklertools) deines Browsers kannst du dir die Fehler anzeigen lassen, die behoben werden müssen, damit der JavaScript-Code ausgeführt werden kann.

Zunächst mal dürfen Funktionsnamen nur Zeichen enthalten, die im ASCII-Zeichenvorrat enthalten sind, also keine Umlaute. Ich würde entsprechend prüfen() in pruefen() umbenennen. Aber auch bei der Ausgabe mit alert() müssen Umlaute kodiert werden, z.B.:

alert("Bitte alle Felder ausf\u00fcllen.");

Dann ist document.Tonleiter nicht existent, infolgedessen sind auch Ton2 bis Ton7 nicht definiert.

08.10.2018 11:36

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]