Radiobutton checked

Tinoh

Grünschnabel
Hallo,

ich versuche mich an ein Script, welches mir "sagen" soll das ich nicht alle Radiobuttons in einer Reihe anklicken darf, bzw. dann weiter machen soll wenn 5 verschiedene angeklickt sind, aber irgendwie will JavaScript mit meinen Value-Wertan aus dem Formular net rechnen. Hier mal ein Stück Quelltext dazu:
Code:
<script language="JavaScript">
<!--
function checkform(form)
{
  if(form.email.value.length<1)
  {
    alert("Bitte geben Sie Ihre Emailadresse ein.");
    return false;
  }
  x1=0;x2=0;x3=0;x4=0;x5=0;
 for(var i = 0; i < 16;i++)
 {
  if(form.fuenf[i].ckecked) x5=i+1;
 }
 for(var i=0; i<16;i++)
 {
  if(form.vier[i].ckecked) x4=i+1;
 }
 for(var i=0; i<16;i++)
 {
  if(form.drei[i].ckecked) x3=i+1;
 }
 for(var i=0; i<16;i++)
 {
  if(form.zwei[i].ckecked) x2=i+1;
 }
 for(var i=0; i<16;i++)
 {
  if(form.eins[i].ckecked) x1=i+1;
 }
 if((x1==0)||(x2==0)||(x3==0)||(x4==0)||(x5==0))
 {
 	alert(x5);
         return false;

 }
 if((x1==x2)||(x2==x3)||(x3==x1)||(x4==x1)||(x5==x1)||(x3==x2)||(x4==x2)||(x5==x2)||(x4==x3)||(x3==x5)||(x5==x4))
 {
 	alert ("Doppelte Wertung für einen Titel ist nicht zulässig!");
         return false;
 }
}

//-->

</script>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<div align="center"><a href="http://www.second-wave.de" target="_blank" onmouseover="window.status='Second-wave.de';return true;" onmouseout="window.status='Fertig';return true;"><img src="http://www.second-wave.de/images/werbebanner.gif" width="480" height="60" border="0" alt="Second-Wave.de"></a></div>
<form action="voting.php" method="POST" name="hoererhits" onSubmit="return checkform(this)">
<div align="center"><h1>Hörerhits</h1>vom 06.11.2005</div><br>
<table border="0">
<tr><th colspan="3">Neuvorstellungen</th></tr>
<tr><td>Nummer</td><td><div align="center">Titel</div></td><td>Punkte(5,4,3,2,1)</td></tr>
<tr><td>1.</td><td>DJ Ötzi - Gebt mir ein Zeichen</td><td><input type="Radio" name="fuenf" value="1"><input type="Radio" name="vier" value="1"><input type="Radio" name="drei" value="1"><input type="Radio" name="zwei" value="1"><input type="Radio" name="eins" value="1"></td></tr>
Ich hoffe das reicht um mir zusagen woran es liegt dass, das Script nicht das tut was es soll.
 
Wäre nett wenn du dir mal folgendes duchliest und in Zukunft danach handelst: http://www.tutorials.de/tutorials215197.html#post1123301

Ich hab ehrlich gesagt die Lust verloren dir zu helfen, weil mir dein Quelltext zu unübersichtlich ist. Auch bei html ist Einrückung durchaus zu empfehlen und die Code-Boxen auch nicht zu verachten.

Edit:
Ein Mod hat anscheinend nachträglich deinen Code in Code-Boxen gepackt...
 
Tja einen Versuch war es wert, mal wieder in einem Forum zufragen.
Also muß ich doch dabei bleiben, mir meinen eigenen Kopf zuzerbrechen.
 
Noe, du musst nur die Tab-Taste benutzen um deinen Code einzurueken und so uebersichtlich zu machen, dann helf ich dir gerne. Vielleicht machen's andere auch schon so...
 
Aha, na dann werde ich es nochmal versuchen, denn ich sehe absolut den Fehler nicht.

Code:
<script language="JavaScript">
<!--
function checkform(form)
{
  if(form.email.value.length<1)
  {
    alert("Bitte geben Sie Ihre Emailadresse ein.");
    return false;
  }
  x1=0;x2=0;x3=0;x4=0;x5=0;
      for(var i = 0; i < 16;i++)
     {
       if(form.fuenf[i].ckecked) x5=i+1;
     }
     for(var i=0; i<16;i++)
     {
            if(form.vier[i].ckecked) x4=i+1;
     }
       for(var i=0; i<16;i++)
       {
         if(form.drei[i].ckecked) x3=i+1;
       }
       for(var i=0; i<16;i++)
      {
        if(form.zwei[i].ckecked) x2=i+1;
      }
      for(var i=0; i<16;i++)
      {
        if(form.eins[i].ckecked) x1=i+1;
     }
     if((x1==0)||(x2==0)||(x3==0)||(x4==0)||(x5==0))
    {
 	alert("Bitte Punkte vergeben.");
                return false;

    }
     if((x1==x2)||(x2==x3)||(x3==x1)||(x4==x1)||(x5==x1)||(x3==x2)||(x4==x2)||(x5==x2)||  (x4==x3)||(x3==x5  )||(x5==x4))
    { 
 	alert ("Doppelte Wertung für einen Titel ist nicht zulässig!");
                return false;
    }
}

//-->

</script>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<form action="voting.php" method="POST" name="hoererhits" onSubmit="return checkform(this)">
<div align="center"><h1>Hörerhits</h1>vom 06.11.2005</div><br>
<table border="0">
<tr><th colspan="3">Neuvorstellungen</th></tr>
<tr><td>Nummer</td><td><div align="center">Titel</div></td><td>Punkte(5,4,3,2,1)</td></tr>
<tr><td>1.</td>
<td>DJ Ötzi - Gebt mir ein Zeichen</td><td><input type="Radio" name="fuenf" value="1">
<input type="Radio" name="vier" value="1">
<input type="Radio" name="drei" value="1">
<input type="Radio" name="zwei" value="1">
<input type="Radio" name="eins" value="1">
</td></tr>
........
 
Zuletzt bearbeitet:
Hab's mir jetzt mal angeschaut. Ich kann auch keinen offensichtlichen Fehler entdecken. Was sein könnte ist, dass manche der Radios gar nicht exitieren, oder, dass du einfach einen Denkfehler gemacht hast. Was genau willst du denn mit diesen Script tun und wofür ist es gedacht?

Das mit dem Abfragen ob die radios exitieren würde ich ja so machen (hab dein gesammtes Script gleich verbessert, weil du dich doch ein wenig wiederholt hast):
HTML:
<html><head><title>Untitled</title>
 
 <script type="text/javascript"><!--
 function checkform(form) {
 	if(form.email.value.length<1) {
 		alert("Bitte geben Sie Ihre Emailadresse ein.");
 		return false;
 	}
 	
 	var x1=x2=x3=x4=x5=0,
 		namen = ['eins','zwei','drei','vier','fuenf'];
 
 	for(i in namen) {
 		for(j=0; j<16; j++)
 			if (obj = eval('form.'+ namen[i] +'['+ j +']'))
 				if (obj.checked)
 				    eval( 'x'+ (i+1) +'='+ (j+1) );
 		if( eval('x'+ (i+1) == 0 ) ) {
 			alert(x5);
 			return false;
 		}
 	}
 	
 	for(i in namen)
 		for(j in namen)
 			if(i==j)
 				continue;
 			else if (eval('x'+ (i+1)) == eval('x'+ (j+1)) ) {
 			 alert ("Doppelte Wertung für einen Titel ist nicht zulässig!");
 				return false;
 			}
 }
 //-->
 </script>
 
 </head><body>
 
 <form action="voting.php" method="POST" name="hoererhits" onSubmit="return checkform(this)">
 	<input type="text" name="email" value="bla" /><br />
 	1:<input type="Radio" name="fuenf" value="1"><br />
 	2:<input type="Radio" name="vier" value="1"><br />
 	3:<input type="Radio" name="drei" value="1"><br />
 	4:<input type="Radio" name="zwei" value="1"><br />
 	5:<input type="Radio" name="eins" value="1"><br /><br />
 	
 	1:<input type="Radio" name="fuenf" value="1"><br />
 	2:<input type="Radio" name="vier" value="1"><br />
 	3:<input type="Radio" name="drei" value="1"><br />
 	4:<input type="Radio" name="zwei" value="1"><br />
 	5:<input type="Radio" name="eins" value="1"><br />
 	<input type="submit" value="Ok!" />
 </form>
 
 </body></html>
Bitte nimm dir ein Beispiel an diesem Code, was übersichtlichkeit angeht. Ich hab alles an HTML rausgenommen, was nicht direkt zum Problem beigetragen hat und habe mich bemüht, dass man schon aus dem Quelltext das Problem herauslesen kann.
 
Zuletzt bearbeitet:
So ich habe jetzt mal deinen Vorschlag getestet den Du mir oben gepostet hast.
Funktioniert auch soweit. Nur wenn ich jetzt keinen Radiobutton anklicke bekomme ich einen JavaScriptfehler. Und zwar sagt er dann das die Variable x01 nicht definiert ist.
 
Er sagt dir auch in welcher Zeile - versuch den Fehler selbst zu breinigen, es ist nur ein kleiner.

Sieh das bitte nicht als schikane, aber du willst Hilfe von den Leuten in diesen Forum, also musst du's ihnen so leicht wie moeglich machen dir zu helfen. Dazu gehoert alles so uebersichtlich und intiutiv verstaendlich wie moeglich zu machen und eben auch kleiner Probleme selbst zu loesen.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück