JavaScript quiz?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Ich sehe gar kein Form-Element in deinem Code. Wenn du eine Form über document.forms[...] selektieren möchtest, muss sie auch im Quelltext existieren:

<form action="">
   <input type="radio" name="antwort" value="1">2am<br>
   ...
</form>

Darüber hinaus hast du einen Tippfehler in deinem Code:

document.forms[0].antowort

anstatt

document.forms[0].antwort
regex9  23.06.2019, 12:40

Lass das action-Attribut weg. Wenn es einen leeren Wert hat, ist es invalid.

2
Dory1  23.06.2019, 13:53
@regex9

Stimmt, ich hätte vielleicht einen Platzhalter für die tatsächliche URL einfügen, oder es weglassen sollen.

0

Du solltest deinen Quelltext mit anhängen. Dein Bild ist unvollständig, wie sollen wir dir helfen, wenn wir Beispielsweise die Struktur des Formulars nicht kennen?

Woher ich das weiß:Berufserfahrung
Lunadaria 
Fragesteller
 23.06.2019, 12:00

Ahh ,dass tut mir leid.

Das hab ich zu dem Quiz geschrieben :

<script type="text/javascript">

function antworten()

{

var answer;

for(var i = 0; i < document.forms[0].antowort.length; ++i)

{

  if(document.forms[0].antwort[i].checked)

  {

     answer = document.forms[0].antwort[i].value;

     break;

  }

}

if(answer == 2)

{

  alert('Richtig!');

}

else

{

  alert('falsch');

}

}

</script>

<div align="center">

<input type='radio' name='antwort' value='1'>2am<br>

<input type='radio' name='antwort' value='2'>Down for you<br>

<input type='radio' name='antwort' value='3'>Body Bag<br>

<input type='radio' name='antwort' value='4'><br>

<br>

<input type='button' value='Okay' onClick='antworten()'>

</div>

Ich mache Javascript noch nicht sehr lange,deswgen entschuldige schonmal.

0

Tippfehler und fehlendes Formular wurden bereits benannt.

Da ich auf deinem Bild aber schon jetzt Attribute sehe, die als längst veraltet gelten (align), würde ich dir zunächst anraten, mit aktuelleren Quellen HTML zu lernen.

Zum Beispiel:

Um Elemente auf einer Seite zu positionieren, wird CSS eingesetzt. Eine Zentrierung erreicht man beispielsweise so:

div {
  margin: 0 auto;
  width: 200px;
}

Weitere Tipps bezüglich deines Skripts:

1) Rücke deinen Quellcode richtig ein.

function antworten() {
  // hier beginnt die Zeile
  /* ... */
}

Dann wird auch schneller ersichtlich, dass sich Schleife und Verzweigung in einem Funktionskörper befinden.

2) Du holst dir immer wieder das erste forms-Element. Diesen Wert könntest du aber zwischenspeichern, schon allein um dein Skript zu kürzen.

var form = document.forms[0];

for (let i = 0; i < form.antwort.length; ++i) {
  // ...

3) Um den Quellcode beim Lesen logischer zu halten, würde ich den Radiobuttons als Namen antworten (Plural) geben, denn sie verkörpern eine Gruppe.

Du musst die "Rechtschreibung" genau einhalten, da das Programm sonst nicht ausgeführt wird.

Schaue mal in die Browserconsole :-)

Woher ich das weiß:Hobby