PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Javascript und Pulldownmenü


Marodeur
2005-05-24, 17:43:02
Servus.

Hab ein kleines Problem und weis nicht obs am Internet Explorer liegt oder am Seitencode.


Soll quasi ein kleines Quiz sein. Ein Bild einer Kläranlage auf dem per CSS mehrere Dropdownmenüs platziert sind. Von denen aus verweisen Linien zu den fraglichen Punkten.
Sind immer jeweils 3 Antwortmöglichkeiten im Menü.
Man wählt überall welche aus und per Button lässt man dann überprüfen ob die gewählten Antworten richtig sind.

Zu Beginn werden 6 Variablen auf 0 gesetzt:
<script language="JavaScript" type="text/javascript">
<!--
var ant1 = "0"
var ant2 = "0"
.
.


Die Menüs sehen z.B. so aus:

<select size="1">
<option selected onClick="javascript:ant4='0'">?</option>
<option onClick="javascript:ant4='1'">Faulturm</option>
<option onClick="javascript:ant4='2'">Hochbehälter</option>
<option onClick="javascript:ant4='3'">Kraftwerk</option>
</select>


Der Button am Ende startet dann eine Funktion welche die Variablen überprüft.


Das ganze funktioniert mit Firefox bestens. Beim Internet Explorer 6 geht aber nix. Die Variablen bleiben immer auf "0". Nur wenn ich den onClick-Aufruf direkt ins "select" setze klappts, aber so kann ich die Variablen ned ändern. Liegt das am IE? Fänd ich doof... Nu hab laufen unsere Seiten endlich mit Firefox fast fehlerfrei und dann so ein Rückschlag in die andere Richtung...

Wäre schön wenn mir da wer weiterhelfen kann. Ich mach das halt nur nebenbei, bin da kein Profi. Mach eh alles "zu Fuß" per HTML Editor Phase 5... Narf... :usad:

Gruss
Markus

darph
2005-05-24, 18:21:43
"javascript:" im OnClick handler? Wieso das? Der Eventhandler ruft eh ein Script auf, ihm das nochmal explizit zu sagen wäre ja doppelt gemoppelt.

Speicher den Spaß am Besten in einem Array.
<script language="JavaScript" type="text/javascript">

var ant[];
loesung[] = "1";
loesung[] = "2";
loesung[] = "1";
loesung[] = "5";


function setAnt(i, auswahl)
{
ant[i] = auswahl;
}

function loes()
{
for (var i = 0; i < loesung.length; i++) //oder length oder size?
{
if (ant[i] == loesung[i])
{
document.writeln("Frage " + (i+1) + " wurde richtig beantwortet");
//oder so... ;(
}
}
}
</script>
<select size="1">
<option selected onClick="setAnt(4, '0')">?</option>
<option onClick="setAnt(4, '1')">Faulturm</option>
<option onClick="setAnt(4, '2')">Hochbehälter</option>
<option onClick="setAnt(4, '4')">Kraftwerk</option>
</select>


So. Der Index deines arrays ist die Nummer der Frage, der Wert an dieser Stelle die Antwort.

also "ant[3] = '5';" - Auf Frage drei wurde mit "5" geantwortet.

Marodeur
2005-05-27, 14:27:15
Der Internet Explorer scheint mir aber bei "Option" kein "onclick" zu akzeptieren? Vielleicht kann das ja mal einer nachprüfen. Hab hier bei option schon einiges mit dem onclick probiert (alert, etc.) aber auf nix reagiert er, anscheinend registriert er eine Menüauswahl nicht als "Klick". IE scheint das hier anders zu handhaben als der Firefox.

Ich bin aber dann doch noch auf eine Idee gekommen wie es beide machen können. Selfhtml sei dank... :rolleyes:

Hab noch eine funktion eingefügt:
function CheckAuswahl () {
ant1 = document.Testform.auswahl1.selectedIndex;
ant2 = document.Testform.auswahl2.selectedIndex;
ant3 = document.Testform.auswahl3.selectedIndex;
ant4 = document.Testform.auswahl4.selectedIndex;
ant5 = document.Testform.auswahl5.selectedIndex;
ant6 = document.Testform.auswahl6.selectedIndex;
}

Und der Aufruf erfolgt im "Select" statt unter "Option". Hier geht es dann auch bei IE.
<select name="auswahl4" onchange="CheckAuswahl()" size="1">
<option selected>?</option>
<option>Faulturm</option>
<option>Hochbehälter</option>
<option>Kraftwerk</option>
</select>

Vielleicht ned ganz sauber das er jetzt bei jeder Auswahl alle Variablen auf einmal schreibt aber mir fehlt auch grad die Zeit das absolut sauber zu machen. Daran das er die Auswahl eh durchnummeriert (selectedindex) hab ich nimmer gedacht... :redface:

Trotzdem danke für die Hilfe.

Gruss
Markus