Anfängerfrage 2: onload-funktion arbeitet nicht richtig.

Grogmo

Grünschnabel
Hallo,
ich habe zum üben von Javascript, MySQL, PHP, HTML und CSS ein kleines Würfelspiel geschrieben.
Das funktioniert so, wie es soll. Anschließend hatte ich eine Datenbank eingerichtet, in der die Ergebnisse mit Spielernamen gespeichert werden. Der Spielername wurde per Prompt ermittelt.
Funktionierte auch wunderbar, aber ich mag das Arbeiten mit dem Prompt-Befehl nicht, darum wollte ich einen anderen Weg gehen.

Im Programm selbst ersetze ich an einer Stelle den Inhalt eines Div-Containers, um den Spielzwischenstand anzuzeigen und gehe dann nach Bestätigung per Button wieder zum Spiel.
Diese Methode wollte ich nun auch verwenden, um am Anfang einen Namen einzugeben. Ich habe meine JS-Funktion also ähnlich aufgebaut und dann per <body onload="nameEingeben()"> aufgerufen.
jedoch versteckt diese Methode nur die drei enthaltenen Div-Container, so wie es sein soll, zeigt aber nicht den neuen Inhalt an, so wie es die andere Funktion im Spiel tut. Ich finde den Fehler nicht ....
Darum hier einfach mal mein Code von der onload Funktion:

Code:
function nameEingeben() {
				document.getElementById("spielfeldlinks").style.display = "none";
				document.getElementById("spielfeldmitte").style.display = "none";
				document.getElementById("spielfeldrechts").style.display = "none";
				var formCreate = document.createElement("form");
				formCreate.id = "formName";
				var inputTextCreate = document.createElement("input");
				inputTextCreate.id="textName";
				inputTextCreate.type="text";
				inputTextCreate.size="30";
				inputTextCreate.maxlength="30";
				formCreate.appendChild(inputTextCreate);
				var inputButtonCreate = document.createElement("input");
				inputButtonCreate.id="btnName";
				inputButtonCreate.type="button";
				inputButtonCreate.value="Name wählen";
				inputButtonCreate.addEventListener("click",nameSetzen,false);
				formCreate.appendChild(inputButtonCreate);
				document.getElementById("spielfeldoben").appendChild(formCreate);
			}

Zum Vergleich dazu die Funktion, die das macht, was ich von ihr möchte, nämlich Container verstecken, neuen Inhalt anzeigen:

Code:
function rundenanzeige(ende) {
				document.getElementById("spielfeldlinks").style.display = "none";
				document.getElementById("spielfeldmitte").style.display = "none";
				document.getElementById("spielfeldrechts").style.display = "none";
				var pCreate = document.createElement("p");
				pCreate.id = "pRunde";
				if(ende==1)
				{
					pCreate.innerHTML = "Runde " + counter +" beendet, Total: " + total + " Punkte";
				}
				else if(ende==2)
				{
					pCreate.innerHTML = "1 gewürfelt.<br>Runde " + counter +" beendet, Total: " + total + " Punkte";
				}
				else
				{
					pCreate.innerHTML = "Spiel beendet, Total: " + total + " Punkte";
				}
				document.getElementById("spielfeldoben").appendChild(pCreate);
				var buttonCreate = document.createElement("input");
				buttonCreate.type = "button";
				buttonCreate.value = "weiter";
				buttonCreate.id = "btnWeiter";		
				buttonCreate.addEventListener("click", conti, false);
				document.getElementById("spielfeldoben").appendChild(buttonCreate);
			}

Vielen Dank im Voraus schon mal für eure Hilfe.
Gruß, Grogmo
 
Zuletzt bearbeitet:
Hi,

am geposteten Quellcode sollte es nicht liegen, wenn die Elementen, die angesprochen werden (getElementById) existieren. Wahrscheinlich liegt der Fehler irgendwo ausserhalb - evtl. onload zweimal verwendet, Handlerfunktion (nameSetzen) nicht vorhanden usw.

Ciao
Quaese
 
es lag tatsächlich an einem doofen schreibfehler. trotzdem danke für die Mühe, sich das durchzuschauen :)
 

Neue Beiträge

Zurück