Uschi Renziehausen: Fragebogen mit Checkboxes auf CD

Beitrag lesen

Hi Sabine,

ich komme auch aus einer anderen Ecke und bin ziemlich unbeleckt in JavaScript, aber an Checkboxen + Auswertung habe ich auch gerade gebastelt. Dein Code ist übrigens wirklich höllisch. Ich geb dir mal meinen Code, ich glaube, der macht, was du möchtest, jedenfalls in Teilen:

<html>
<head>
<title>Checkereien</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">

/* Zaehlvariablen fuer A,B,C,D */

zA = 0;
zB = 0;
zC = 0;
zD = 0;

/* Pruefen, was angekreuzt wurde */

function pruef(){
/* 1. Frage */
if(document.fragebogen.cb1[0].checked == true)
  {
  zA++;
  }

if(document.fragebogen.cb1[1].checked == true)
  {
  zB++;
  }

if(document.fragebogen.cb1[2].checked == true)
  {
  zC++;
  }

if(document.fragebogen.cb1[3].checked == true)
  {
  zD++;
  }

/* Frage 2 auswerten */

if(document.fragebogen.cb2[0].checked == true)
  {
  zA++;
  }

if(document.fragebogen.cb2[1].checked == true)
  {
  zB++;
  }

if(document.fragebogen.cb2[2].checked == true)
  {
  zC++;
  }

if(document.fragebogen.cb2[3].checked == true)
  {
  zD++;
  }

/* Frage 3 auswerten */

if(document.fragebogen.cb3[0].checked == true)
  {
  zA++;
  }

if(document.fragebogen.cb3[1].checked == true)
  {
  zB++;
  }

if(document.fragebogen.cb3[2].checked == true)
  {
  zC++;
  }

if(document.fragebogen.cb3[3].checked == true)
  {
  zD++;
  }
rueckmeldung();
}

/* Zaehlervariablen per Alert ausgeben */

function rueckmeldung(){
alert("Sie haben " +zA +" mal A, " +zB +" mal B, " +zC +" mal C und  " +zD +" mal D angekreuzt.");
}

</script>
</head>

<body bgcolor="#FFFFFF">
<p>Ein Fragebogen:</p>
<form onsubmit="return false"; name="fragebogen">
  <p>1. Frage: A
    <input type="checkbox" name="cb1" value="checkbox">
    B
    <input type="checkbox" name="cb1" value="checkbox">
    C
    <input type="checkbox" name="cb1" value="checkbox">
    D
    <input type="checkbox" name="cb1" value="checkbox">
  </p>
  <p>2. Frage: A
    <input type="checkbox" name="cb2" value="checkbox">
    B
    <input type="checkbox" name="cb2" value="checkbox">
    C
    <input type="checkbox" name="cb2" value="checkbox">
    D
    <input type="checkbox" name="cb2" value="checkbox">
  </p>
  <p>3. Frage: A
    <input type="checkbox" name="cb3" value="checkbox">
    B
    <input type="checkbox" name="cb3" value="checkbox">
    C
    <input type="checkbox" name="cb3" value="checkbox">
    D
    <input type="checkbox" name="cb3" value="checkbox">
  </p>
  <p>
    <input type="button" name="knopf" value="Auswerten" onClick="pruef()";>
  </p>
</form>
<p>  </p>
</body>
</html>

Anders als du benenne ich die zu einer Frage gehörenden Checkboxen mit demselben Namen. Durchnumeriert werden sie von alleine. Was angekreuzt wird, kansst du dann mit dem Schema

if(document.formularname.checkboxname[#].checked == true) abfragen, wobei du beachten mußt, dass die Zählung bei 0 anfängt.
Ganz oben im Script sind vier Variablen deklariert, die am Anfang alle auf 0 stehen und in Abhängigkeit davon hochgezählt werden, was angekreuzt ist. Auf diese Variablen wird dann im alert()-Befehl der Funktion rueckmeldung() wieder zugegriffen.

Vielleicht dir das ja aus der Hölle. Sollte sich rein zufällig <g> jemand hier rumtreiben, der eine elegantere Lösung vorschlagen kann, wäre ich sehr dankbar.

Alles Liebe, Uschi