Forum
Tipps
News
Menu-Icon

Radio Buttons (javaScript)

Hi Leute,...
hab folgendes Problem...
Ich möchte anhand radiobuttons mehrere Antwortmöglichkeiten bei einem Quizspiel sozusagen anbieten. Jeweils 3 mögliche Antworten zu einer Frage. Diese 3 Antworten möchte ich jedoch mit einem Wert versehen (1,2und3). Am Ende soll er mir dann Anhand der angeklickten Antworten den Gesamtwert oder besser gesagt Punktestand ausrechnen, wenn ihr versteht...

Habe bis jetzt das hier auf die Beine stellen können...
---------
<script language="JavaScript" type="text/JavaScript">
function Eins ()
{
var a = (document.form1.Gruppe1.value);
var b = (document.form2.Gruppe2.value);
var c = (a + b)
document.Ergebniss.Auswertung.value = c;
}
</script>
---------
Jedo klappt das nicht und den Fehler finde ich leider ach nicht.

Den Radio-Tag hab ich jeweils so:
---------
<form name="form1" method="post" action="">
<input type="radio" name="Gruppe1" value="3">
<input type="radio" name="Gruppe1" value="1">
<input type="radio" name="Gruppe1" value="2">
</form>

<form name="form2" method="post" action="">
<input type="radio" name="Gruppe2" value="1">
<input type="radio" name="Gruppe2" value="3">
<input type="radio" name="Gruppe2" value="2">
</form>
-----------

Naja irgendwas hab ich da wohl falsch gemacht...
Danke schonmal im vorraus für eure Hilfe.
Gruß Sven


Antworten zu Radio Buttons (javaScript):

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Das musst Du anders machen. Immer schön abfragen ob ein Radiobutton ausgewählt wurde und dann Wert zuweisen:

if(document.form1.Gruppe1.checked == true) a = 3;
else if(document.form1.Gruppe2.checked == true) a = 2;
else a = 1;

Gruß Spawn

Genau das ist das Problem...
Wenn ich das so machen würde, würde der mir sobald Grupp1 angeklickt ist 3 Pkt. vergeben.
Gruppe1 besteht aber aus drei anklick möglichkeiten.

------
<form name="form1" method="post" action="" >
    <table width="200">
      <tr>
        <td><label>
          <input type="radio" name="Gruppe1" value="1">
          Optionsschalter</label></td>
      </tr>
      <tr>
        <td><label>
          <input type="radio" name="Gruppe1" value="2">
          Optionsschalter</label></td>
      </tr>
      <tr>
        <td><label>
          <input type="radio" name="Gruppe1" value="3">
          Optionsschalter</label></td>
      </tr>
    </table>
  </form>
------

Da aber bei 3 Auswahlmöglichkeiten nur eine Angeklickt werden darf und nicht mehrere, kann das mit dem Code nicht funktionieren...
Ich brauch irgendwie nen Code der den dreien einen Wert gibt...

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Dann dürfen sie halt nicht alle "Gruppe1" heissen  ;)

Nenn sie eben Gruppe1a, Gruppe1b und Gruppe1c, dann sollte der obige Weg gehen. Das Value kannst Du Dir dann sparen.

Gruß Spawn

PS: Obwohl Du's ja eigentlich schon so gut wie fertig hast, hier gibt's auch noch ein Beispiel: http://www.informatik.uni-hamburg.de/Frauen/Admina/Beitraege/JavaScript/Radio.html

Also langsam krieg ich nen Appel...
Hab jetzt alles mögliche verucht das ich überhaupt ma werte krieg aber da geht irgendwie garnichts...

Habe das Script jetzt so...
----
<SCRIPT LANGUAGE = "JavaScript">

function Test()
{

   var a = document.form1, i;

   for (i = 0; i < a.Gruppe1.length; i ++);
   {if (a.Gruppe1.checked == true)
   { document.form1.Auswertung1.value = (i+1);
   }
   }
}
   
function Test1()
{
   
   var b = document.form2, j;
   
   for (j = 0; j < b.Gruppe2.length; j ++);
   {if (b.Gruppe2[j].checked == true)
   { document.form2.Auswertung2.value = (j+1);
   }
   }

}

</SCRIPT>

<br>
<center>
  <form name="form1" method="post" action="" >
    <table width="200">
      <tr>
        <td><label>
          <input type="radio" name="Gruppe1">
          Optionsschalter</label></td>
      </tr>
      <tr>
        <td><label>
          <input type="radio" name="Gruppe1">
          Optionsschalter</label></td>
      </tr>
      <tr>
        <td><label>
          <input type="radio" name="Gruppe1">
          Optionsschalter</label></td>
      </tr>
    </table>
   <input type="text" name="Auswertung1">
   <input type= "reset" value="Zurücksetzen" name="B2">
      <input type="button" value="Auswertung" onClick="Test()">   

  </form>
 
 <form name="form2" method="post" action="">
    <table width="200">
      <tr>
        <td><label>
          <input type="radio" name="Gruppe2">
          Optionsschalter</label></td>
      </tr>
      <tr>
        <td><label>
          <input type="radio" name="Gruppe2">
          Optionsschalter</label></td>
      </tr>
      <tr>
        <td><label>
          <input type="radio" name="Gruppe2">
          Optionsschalter</label></td>
      </tr>
    </table>
   <input type="text" name="Auswertung2">
   <input type= "reset" value="Zurücksetzen" name="B2">
      <input type="button" value="Auswertung" onClick="Test1()">   

  </form>
 
  <form name="Ergebniss">
    
  </form>
----

Also möchte wie gesagt pro Gruppe 3 werte kriegen...
Erster Button = 1
Zweiter Button = 2
Dritter Button = 3

und wenn dann alle Fragen am Ende beantwortet wurden, wäre es mir lieber wenn der mir in einem <input type="text"> alle angeklickten Werte zusammenrechnet und ein ENDWERT ausgibt...

Naja sry wenn ich in dem Gebiet nicht so fit bin und mich bissle doof tue aber irgend wie Blick ich das nich so ganz.

Danke nochmal für weiter Antworten

Gruß Sven

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Okay, ich verstehe das Problem und mir fiel gerade auf, dass ich da oben teilweise ganzschön Müll geschrieben habe. Ich würds mir am Wochenende mal anschauen, momentan ist ganzschön stressig. Bis jetzt hab ichs mal so umgemodelt:

<SCRIPT LANGUAGE = "JavaScript">

function Test()
{

   var a = document.form1, i;
   //i=a.Gruppe1.value;
   if (a.Gruppe1a.checked == true) i = 1;
   if (a.Gruppe1b.checked == true) i = 2;
   if (a.Gruppe1c.checked == true) i = 3;
   document.form1.Auswertung1.value = (i);
   alert(i);
}

function Test1()
{

   var b = document.form2, j;

   for (j = 0; j < b.Gruppe2.length; j ++);
   {if (b.Gruppe2[j].checked == true)
   { document.form2.Auswertung2.value = (j+1);
   }
   }

}

</SCRIPT>

<br>
<center>
  <form name="form1" method="post" action="" >
    <table width="200">
      <tr>
        <td><label>
          <input type="checkbox" name="Gruppe1a" value="1">
          Optionsschalter</label></td>
      </tr>
      <tr>
        <td><label>
          <input type="checkbox" name="Gruppe1b" value="2">
          Optionsschalter</label></td>
      </tr>
      <tr>
        <td><label>
          <input type="checkbox" name="Gruppe1c" value="3">
          Optionsschalter</label></td>
      </tr>
    </table>
   <input type="text" name="Auswertung1">
   <input type= "reset" value="Zurücksetzen" name="B2">
      <input type="button" value="Auswertung" onClick="Test()">

  </form>

 <form name="form2" method="post" action="">
    <table width="200">
      <tr>
        <td><label>
          <input type="radio" name="Gruppe2a">
          Optionsschalter</label></td>
      </tr>
      <tr>
        <td><label>
          <input type="radio" name="Gruppe2b">
          Optionsschalter</label></td>
      </tr>
      <tr>
        <td><label>
          <input type="radio" name="Gruppe2c">
          Optionsschalter</label></td>
      </tr>
    </table>
   <input type="text" name="Auswertung2">
   <input type= "reset" value="Zurücksetzen" name="B2">
      <input type="button" value="Auswertung" onClick="Test1()">

  </form>

  <form name="Ergebniss">

  </form>

Das Problem ist dabei nur, dass die Mehrfachauswahl nicht abgefangen wird und es momentan eh ziemlich unelegant gelöst ist.
Wie gesagt, ich versuchs bei Gelegenheit mal.
Auf jeden Fall erschloss sich mir noch kein Weg mit den Radio-Buttons, das muss aber auch irgendwie gehen. Kannst ja mal bissel googeln.

Bis denn Spawn

Naja die Checkboxen sind da etwas unpraktisch da ja wiegesagt immer nur eine Antwort möglichkeit besteht und wenn man dann mehrere Anklickt kriegt man ja am Ende schon zubiel Pkt. von den Werten...

Also was ich mir so Gedacht hab ist folgendes...

1. Eine Gruppe Radiobuttons verlangt ja immer den selben <name="???">. Wäre es irgendwie möglich bei einer dreier Gruppe, jedoch mit verschiedenen Namen, per Java festzulegen das wenn ein Button geklickt ist die andern beiden nicht mehr gehn, aber trotz alledem bei einem anderen Buttonklick das checked switched ???
So wie bei ner Gruppe halt, nur mit verschiedenen Namen damit das mit den Werten einfacher geht...

2. Ich weiß zwar nicht ob das jetzt umsetzbar oder machbar ist, ABER wenn mann einem Button 2 names <name="???"> geben kann, KÖNNTE eventuell die Gruppe bestehen bleiben, jodoch verschiedene Buttons im Java angewählt werden, wenn du verstehst...

Aber da ich eh mittlerweile schon am Ende meines Java Lateins bin, krieg ich solche Sachen nich mehr umgesetzt ausser Punkt 2 natürlich aber generell klappt da irgendwas nicht und ob der so mit 2 Namen zurechtkommt weiß ich auch nicht.
Daher hoff ich auf weitere Hilfe ;)

Gruß Sven

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Punkt 2 wird wohl nicht realisierbar sein, aber zu Punkt 1, das geht etwa so:

<input type="radio" name="Gruppe1a" OnClick="Gruppe1a()">
mit

function Gruppe1a()
{
  document.form1.Gruppe1b.checked = false;
  document.form1.Gruppe1c.checked = false;
}

So richtig elegant ist das zwar auch noch nicht, aber könnte funktionieren. Analog müssen dann natürlich für diese Gruppe noch die 2 anderen Möglichkeiten und für jede neue Gruppe wieder 3 dazu.

Gruß Spawn

« Filme auf HPfwrite () »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Blende
Die Blende, oder auch fotografische Blende, ist eine mechanische Vorrichtung und Teil des Objektives bei Foto- und Videokameras. Dieser Teil des Objektivs kontrolliert di...

Quellcode
Ein Quellcode, auch als Quelltext bekannt, bezeichnet den unkompilierten Programm-Code einer Software. Quell- oder Programm-Code ist der auch für Menschen lesbare Co...

Unicode
Unicode ist ein international anerkannter Standard, der als universeller Zeichencode ("Universal Code") dient und durch das Unicode-Konsortium entwickelt und verwaltet wi...