Radio Button-Abfrage

Aiwonnie

Mitglied
Hallo!

Habe leider im Forum keine Lösung für mein Problem gefunden. Ich möchte ein Quiz erstellen, bei dem für ein Bild 3 Radio-Buttons angeboten werden, einer davon ist richtig. Das soll beim Klick auf den Button abgeprüft werden und ein ensprechendes alert-Fenster aufgehen. Leider habe ich so ziemlich alles durchprobiert, aber nie geht ein Fenster auf. Was mache ich falsch?

Danke schonmal!

Hier der Code:
Code:
<script type="text/javascript">
        function Antwort () {
            var radio = document.Formular.spek1;
            if (radio.checked == true) {
                alert("Richtig!");
            }  else {
                alert("Das war leider falsch!");
            }
        }
</script>

<!-- ... -->

<img src="bild.jpg" border="0" width="300" />
<form name="Formular">
        <input type=radio name="spek1" value="1"> eins
        <input type=radio name="spek1" value="2"> zwei
        <input type=radio name="spek1" value="3"> drei
        <br><br>
        <input type="button" value="OK" onclick="Antwort()">
</form>
 
Moin,

das Problem ist, dass du 3 Buttons mit gleichem Namen hast...woher soll JS wissen, welchen es Prüfen soll?

Mit
Code:
document.Formular.spek1
sprichst du alle 3 Buttons an, denn diese werden wie bei gleichnamigen Elementen üblich in einem Array verwaltet.

Du musst also der Funktion mitteilen, welches der richtige Button ist...hier nen Beispiel:
Code:
<script type="text/javascript">
  function Antwort (x) 
  {
    alert((document.Formular.spek1[x].checked)?'richtig':'falsch');
  }
</script>
<!-- ... -->

<img src="bild.jpg" border="0" width="300" />
<form name="Formular">
  <input type=radio name="spek1" value="1"> eins
  <input type=radio name="spek1" value="2"> zwei
  <input type=radio name="spek1" value="3"> drei
  <br><br>
  <input type="button" value="OK" onclick="Antwort(1)">
</form>

Wie du erkennst, wird der Funktion ein Parameter mitgegeben...der Index des korrekten Buttons(hier "zwei")...achte darauf, dass der Index eines Arrays bei 0 beginnt. ;)
 
Danke, das klingt sehr logisch, funktioniert aber leider trotzdem nicht.
Hab dann nochmal abgetestet, ob es denn was ausgibt, auch wenn was falsches angeklickt wurde und da komtm auch nix. Der Code dazu ist folgender:

Code:
        function Antwort (x) {
            if (document.Formular.spek1[x].checked == true) {
                    alert("Ja!");
            } else {
                alert("Nein...");
            }
        }

Weiter unten hab ich genau das, was du geschrieben hast.
Aber in keinem Fall geht ein Fenster auf.
 
Hi,

wenn du den Rest tatsächlich wie Sven hast, funktioniert auch deine Variante.
Code:
<html>
<head>
<title>www.tutorials.de</title>
<script type="text/javascript">
  <!--
function Antwort (x) {
  if(document.Formular.spek1[x].checked == true){
    alert("Ja!");
  }else{
    alert("Nein...");
  }
}
 //-->
</script>
</head>
<body>
<!-- ... -->

<img src="bild.jpg" border="0" width="300" />
<form name="Formular">
  <input type=radio name="spek1" value="1"> eins
  <input type=radio name="spek1" value="2"> zwei
  <input type=radio name="spek1" value="3"> drei
  <br><br>
  <input type="button" value="OK" onclick="Antwort(1)">
</form>
</body>
</html>
Ciao
Quaese
 

Neue Beiträge

Zurück