Problem mit Radiobuttons!
fred
- javascript
0 Cybaer
Hallo zusammen, habe folgendes Script geschrieben:
// JavaScript Document
var fragenarray = new Array(
new Array("Dies ist Frage A","Antwort1","Antwort2","Antwort3","Antwort4",0),
new Array("Dies ist Frage B","Antwort1","Antwort2","Antwort3","Antwort4",0),
new Array("Dies ist Frage C","Antwort1","Antwort2","Antwort3","Antwort4",0),
new Array("Dies ist Frage D","Antwort1","Antwort2","Antwort3","Antwort4",0),
new Array("Dies ist Frage E","Antwort1","Antwort2","Antwort3","Antwort4",0),
new Array("Dies ist Frage F","Antwort1","Antwort2","Antwort3","Antwort4",0));
var x = 0;
var i = 0;
var zaehler = 0;
var feldnummer = 0;
function init()
{
document.writeln('<center><font size="+3">Der ultimative Wissenstest!!!</font><table width="200" border="1">')
for (x = 0; x < 5; x++)
{
document.write ('<tr><td class="puzzle" name="feld_' + x + '" onclick="aendern(' + x + ')" id="feld_' + x + '"> </td></tr>');
}
document.write('</table><br><input type="button" name="b_starten" id="b_starten" value="Starten" onClick="javascript:starter()">\
</table><br><input type="button" name="b_forward" value="Weiter" onClick="javascript:weiter()"></center>');
}
function starter()
{
aendern();
document.getElementById("b_starten").disabled = true;
}
function aendern(feldnummer)
{
document.getElementById("feld_0").innerHTML = fragenarray[zaehler][0];
for (i = 1; i < 5; i++)
{
document.getElementById("feld_" + i).innerHTML = '<input type="radio" name="'+i+'" value="'+i+'">'+fragenarray[zaehler][i];
}
}
function weiter()
{
zaehler=zaehler+1;
aendern();
}
Wie unschwer zu erkennen sein sollte handelt es sich um ein Wissensquiz!
Kurz was zum Ablauf:
Zunächst (beim Seitenaufruf) wird eine leere Tabelle erzeugt
Danach wird durch betätigen des "Start-Buttons" die Tabelle mit der Frage und den Antworten gefüllt (provisorisch FrageA B usw. genannt)!
Durch betätigen des "Weiter-Buttons" gelangt man dann zur nächsten Frage.
Mein Problem:
Das Erzeugen und Füllen der Tabelle klappt einwandfrei! Leider ist es danach nicht möglich einen der Radiobuttons auszuwählen! Irgendwo muss wohl ein <form> eingebaut werden, weiß aber nicht wie und wo?! Es darf natürlich auch nur eine Antwort ausgewählt werden, d.h. es sollte sich nach möglichkeit um eine Radiogroup handeln!
Vielleicht könnt ihr mir ja den entscheidenden Tipp geben, wie ich es bewerkstelligen kann!
danke im Vorraus
mfg fred
Hi,
nur mal überflogen:
document.writeln('<center><font size="+3">Der ultimative Wissenstest!!!</font><table width="200" border="1">')
Kann nicht sein! Den schreibe ich gerade selbst! ;-)
Ansonsten: Denk vielleicht einfacher und mische möglichst wenig. D.h., warum nicht alles mit document.write erstellen? Oder, wenn Du ohnehin ein modernes DOM (DOM Level 2: getElementBy.., innerHTML & Co.) voraussetzt, warum nicht statischen (nicht durch JS generierten) HTML-Code und die Fragen dann per DOM austauschen? Dann kannst Du den Code auch mal eben durch einen Validator jagen.
Es ginge sogar, alles mit DOM Level 0 zu machen (Antwortzeilen als Text-Inputfelder, die CSS-formatiert "normal" Aussehen). Dann kannst Du beliebige Beispiele zum Thema "Formularverarbeitung mit JavaScript" zur Anschauung verwenden.
Ansonsten denke dran, in JS den String "</" bei write() zu maskieren ("</").
document.getElementById("b_starten").disabled = true;
Vermeide ruhig DOM Level 2, wenn man gleiches auch mit DOM Level 0 erreichen kann (document.forms["FormName"].elements["ElementName"].disabled=true).
document.getElementById("feld_" + i).innerHTML = '<input type="radio" name="'+i+'" value="'+i+'">'+fragenarray[zaehler][i];
Und Namen (wie auch IDs) dürfen auch nicht mit Ziffern beginnen.
Das Erzeugen und Füllen der Tabelle klappt einwandfrei! Leider ist es danach nicht möglich einen der Radiobuttons auszuwählen! Irgendwo muss wohl ein <form> eingebaut werden, weiß aber nicht wie und wo?!
selfHTML enthält auch Beispiele zu FORMs und Radiobuttons.
Gruß, Cybaer