Script funzt im Explorer 5.5 aber in den anderen nicht.
Bernie
- javascript
0 Calocybe0 Bernie
0 Alex
Hallo zusammen,
Habe da ein Script zur Radiobuttonauswertung und gleichzeitiger Oeffnung der dazugehörigen Seite.
Nach Einbau herrschte kurzzeitig Freude, da es unter IE 5.5 funzt. Musste danach leider festellen, das es nur dort funzt.
Könnt Ihr mir sagen warum?
Gruss
Bernie
<script language="javascript">
<!--
function auswert(formular)
{
var seite="";
for (i=0;i<formular.length-1;i++)
{
if (formular.elements[i].checked==true)
seite=seite+formular.elements[i].value;
}
seite=seite+".htm";
self.location.href=seite;
}
//-->
</script>
Hallo Bernie!
Könnt Ihr mir sagen warum?
Auf den ersten Blick nicht. Bitte gib uns mal noch den Code des Formulars mit.
So long
Hi Calocybe
liefere ich doch sehr gerne. Besten Dank für Deine Bemühungen.
Gruss
Bernie
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Hauptteil</title>
</head>
<body>
<div align="center">
<center>
<table border="0" width="90%">
<tr>
<td width="100%">
<p><font face="Arial"><b>Blitz-Test Motivation - so geht's<br>
<font color="#FF9900">Einmal</font> </b>Ihre allerwichtigste Motivation
ankreuzen: Dort in 1. klicken<br>
<b><font color="#FF9900">Einmal</font> </b>Ihre zweitwichtigste Motivation
ankreuzen: Dort in 2. klicken<br>
<b><font color="#FF9900">OK</font></b> drücken - Feedback kommt sekundenschnell</font></p>
<form name="auswahl" action="" onsubmit="auswert(this);return false;">
<div align="center">
<table border="0" width="90%">
<tr>
<td width="33%" valign="middle" align="center"><font size="1" face="Arial">Erste Führungserfahrung sammeln</font>
<p align="center"><font size="1" face="Arial">1. </font><font face="Arial"><input type="radio" value="a1" name="R1"><font size="1">
2. </font></font><font face="Arial"><input type="radio" value="a2" name="R2"></font></td>
<td align="center" width="33%" valign="middle"><font size="1" face="Arial">Fremdsprachen anwenden</font>
<p align="center"><font size="1" face="Arial">1. </font><font face="Arial"><input type="radio" value="b1" name="R1"><font size="1">
2. </font><input type="radio" value="b2" name="R2"></font></td>
<td align="center" width="33%" valign="middle"><font size="1" face="Arial">Neu in die Kommunikations-Branche
einsteigen</font>
<p align="center"><font size="1" face="Arial">1. </font><font face="Arial"><input type="radio" value="c1" name="R1"><font size="1">
2. </font><input type="radio" value="c2" name="R2"></font></td>
</tr>
<tr>
<td width="33%" valign="middle" align="center"><font size="1" face="Arial">Geldmässig etwas zulegen</font>
<p><font size="1" face="Arial">1. </font><font face="Arial"><input type="radio" value="d1" name="R1"><font size="1">
2. </font><input type="radio" value="d2" name="R2"></font></td>
<td align="center" width="33%" valign="middle"><font size="1" face="Arial">Internationale Kollegen oder Kontakte
haben</font>
<p align="center"><font size="1" face="Arial">1. </font><font face="Arial"><input type="radio" value="e1" name="R1"><font size="1">
2. </font><input type="radio" value="e2" name="R2"></font></td>
<td align="center" width="33%" valign="middle"><font size="1" face="Arial">Die Seite wechseln (Medium - Agentur -
Kunde)</font>
<p align="center"><font size="1" face="Arial">1. </font><font face="Arial"><input type="radio" value="f1" name="R1"><font size="1">
2. </font><input type="radio" value="f2" name="R2"></font></td>
</tr>
<tr>
<td width="33%" valign="middle" align="center"><font size="1" face="Arial">Eine andere Leitfigur werden (statt über
Obere nur motzen)</font>
<p><font size="1" face="Arial">1. </font><font face="Arial"><input type="radio" value="g1" name="R1"><font size="1">
2. </font><input type="radio" value="g2" name="R2"></font></td>
<td align="center" width="33%" valign="middle"><font size="1" face="Arial">Auch im Ausland aktiv sein</font>
<p><font size="1" face="Arial">1. </font><font face="Arial"><input type="radio" value="h1" name="R1"><font size="1">
2. </font><input type="radio" value="h2" name="R2"></font></td>
<td align="center" width="33%" valign="middle"><font size="1" face="Arial">Den Medien-Typ wechseln
(Print -
Audiovisuell - Interaktiv)</font>
<p><font size="1" face="Arial">1. </font><font face="Arial"><input type="radio" value="i1" name="R1"><font size="1">
2. </font><input type="radio" value="i2" name="R2"></font></td>
</tr>
</center>
<tr>
<td colspan="3">
<p align="center"><font face="Arial"><input type="submit" value="OK" name="" style="background-color: #FF9900; font-family: Arial; color: #FFFFFF; border: 2 solid #FFFFFF"></font></td>
</tr>
</table>
</div>
</form>
<script language="javascript">
<!--
function auswert(formular)
{
var seite="";
for (i=0;i<formular.length-1;i++)
{
if (formular.elements[i].checked==true)
seite=seite+formular.elements[i].value;
}
seite=seite+".htm"; /*ergänzen von htm*/
self.location.href=seite; /*laden der Seite*/
}
//-->
</script>
</td>
</tr>
</table>
</div>
</body>
</html>
Hallo Bernie
»»<input type="radio" value="f1" name="R1">
<input type="radio" value="f2" name="R2">
<input type="radio" value="g1" name="R1">
<input type="radio" value="g2" name="R2">
Das Script selber funktioniert schon, du mußt nur mit den Namen der Radiobuttons sauberer arbeiten. Also gleiche Namen in Buttons der gleichen Frage. Aber verschiedene Namen in verschiedenen Fragen.
also z.B.
<input type="radio" value="f1" name="R1">
<input type="radio" value="f2" name="R1">
<input type="radio" value="g1" name="R2">
<input type="radio" value="g2" name="R2">
<input type="radio" value="h1" name="R3">
<input type="radio" value="h2" name="R3">
Viele Grüße
Antje
PS: Sorry, daß mein Script von gestern unvollständig war. Ich hatte es in einer kurzen Pause geschrieben.
Hi Antje,
Du entwickelst Dich je länger je mehr zu meinem rettenden Engel.
Allerdings, wenn Du Dir das Formular anschaust (www.cytracon.com/jobsource/motivation/blitztest.htm),
siehst Du, das der Besucher bei diesen 9 Aussagen nur 1x 1. Priorität und nur 1x 2. Prioriät anklicken darf.
Wenn ich jedoch mit R1-R9 arbeite, kann der Besucher 9x anklicken.
Ich versteh lediglich nicht, warum das unter IE 5.5 einwandfrei läuft, bei den anderen Versionen jedoch den Geist aufgibt.
Kannst Du mir weiterhelfen?
Liebe Grüsse
Bernie
Hier Bernie
Wenn ich jedoch mit R1-R9 arbeite, kann der Besucher 9x anklicken.
Ich versteh lediglich nicht, warum das unter IE 5.5 einwandfrei läuft, bei den anderen Versionen jedoch den Geist aufgibt.
Im NN kommt folgende Fehlermeldung
illegal character.
seite=seite+".htm"; /*ergänzen von htm*/
...................^
Das bedeutet, das Leerzeichen ist in einem Format gespeichert, das die Browser nicht vertragen.
Abhilfe:
lösche die Leerzeichen in
seite=seite+".htm"; /*ergänzen von htm*/
self.location.href=seite; /*laden der Seite*/
also so:
seite=seite+".htm";/*ergänzen von htm*/
self.location.href=seite;/*laden der Seite*/
:-) ich mußte erst meine Speicheroptionen im Editor umstellen, um diesen Fehler nachvollziehen zu können.
Interessant, dieser Fehler ist mir im Zusammenhang mit JavaScript noch nie begegnet.
Viele Grüße
Antje
Hallo Antje
Da bin ich ja froh, dass Du trotzdem was gelernt hast von
meinem Fehler ;-).
Nochmals herzlichen Dank.
Liebe Grüsse
Bernie
Allerdings, wenn Du Dir das Formular anschaust (www.cytracon.com/jobsource/motivation/blitztest.htm),
Ich nehme an, Du meinst http://www.cytracon.com/jobsource/motivation/auswertung/blitztest.htm?
Da begruesst mich erstmal ein JS-Error:
JavaScript Error:
http://www.cytracon.com/jobsource/motivation/auswertung/blitztest.htm,
line 94:
illegal character.
seite=seite+".htm"; /*ergänzen von htm*/
...................^
Wahrscheinlich ist da irgendwie ein Sonderzeichen reingerutscht. Loesch am besten mal die Zeile komplett und schreib sie neu, das hilft meistens bei sowas.
Dann ist mir doch noch was in dem JavaScript aufgefallen. In der for-Schleifen-Abbruchbedingung fragst Du nach formular.length, dann greifst Du aber auf formular.elements[i].* zu. Sollte zwar theoretisch gehen (length von Formular ist definiert als Anzahl der enthaltenen Elemente), aber sicher ist sicher; frag lieber formular.elements.length ab.
Dann pruefst Du fuer jedes der Elemente die Eigenschaft checked ab. Du hast aber nicht nur Radio-Buttons, sondern auch einen Submit-Button. Daher am besten sowas ungefaehr:
function auswert(formular)
{
var seite="";
for (i=0;i<formular.length-1;i++)
{
var control = formular.elements[i];
if (control.type.toLowerCase() == "radio" && control.checked)
seite = seite + control.value;
»» }
»» seite=seite+".htm";
self.location.href=seite;
}
//-->
HTH && So long
Hi Calocybe,
Danke für Deine Bemühungen.
Aber wie Antje festgestellt hat, waren lediglich Leerzeichen schuld daran.
Thxs
Bernie
Sorry, falscher Link:
Richtig: www.cytracon.com/jobsource/motivation/auswertung/blitztest.htm
Also, im NC 4.5 funzt's!
Ansonsten würde ich empfehlen, den ganzen <script> ... </script> - Block im head unterzubringen.