• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Variable mit Eingabefeld bestimmen

Josch21401

New member
Hallo zusammen.
Ich habe ein Problem bei der Bestimmung einer Variablen durch ein Eingabefeld. Im anhängenden Code soll die Variable t per Eingabe bestimmt werden. Leider erhalte ich immer undefiniert als Ergebnis. Definiere ich die variable im code erhalte ich ein korrektes Ergebnis. Der code liefert auf Grundlage der teilnehmenden Fahrer eine zufällige Startreihenfolge. Seht Ihr den Fehler? Wie muss es richtig heißen. Vielen Dank für Eure Antworten.

Gruß Josch
-------
HTML:
<html>
<head>
<meta name="Startreihenfolge" content="German Tank Racing">
<title>Startreihenfolge</title>

<form method="get" name="Reihenfolge">
Anzahl der Fahrer eingeben und die Startreihenfolge ermiteln:
<input type="number" id="Anzahl" style="text-align:center; font-size:21; height:50px; width:70px">
</br>
</br>
<input type="button" value="ermitteln" style="font-size:24; background-color: #32cd32; height:40px; width:500px;" onClick="Zufallszahl ()">
</br>
</br>
<input type="button" value="löschen" style="font-size:24; background-color:#ff4500; height:40px; width:500px;" onClick="window.location.reload ()">
</br>
</br>
<input value="" type="text" name="ReihenfolgeFeld" style="text-align:center; font-size:21; height:50px; width:500px">
</form>

<script type="text/javascript" language="JavaScript">

var n = new Array ();
var check = new Object ();
var t = document.getElementById("Anzahl").value;
var tt = t-1

while (n.length < t )
{
var random = Math.round (1 + tt * Math.random () );
if ( !check [random] )
{
n.push (random);
check [random] = true;
}
var Start = n.join (" - ");
}
function Zufallszahl () {
Reihenfolge.ReihenfolgeFeld.value = Start;
}

</script>
</head>
</html>
 
Zuletzt bearbeitet von einem Moderator:
die globalen variablen sind keine gute idee.
tipp: überprüfe mal, in welcher reihenfolge der browser hier was genau macht. hilf dir mit debug ausgaben in der console (F12).
 
Du musst eigentlich nur deinen ganzen Code in die Funktion "Zufallszahl" (kein wirklich guter Funktionsname...) packen.

PS: Dein HTML ist massiv invalide.
PPS: Zusätzlich braucht font-size eine Größenangabe... das funktioniert bei dir nur, weil du im Quirksmode arbeitest, was man möglichst vermeiden sollte.
PPPS: Zu guter Letzt ist das Mischen der Startziffern ineffizient.

Code:
<!DOCTYPE html>
<html>
<head>
<meta name="Startreihenfolge" content="German Tank Racing">
<title>Startreihenfolge</title>
</head>
<body>
<form method="get" name="Reihenfolge">
Anzahl der Fahrer eingeben und die Startreihenfolge ermiteln:
<input type="number" id="Anzahl" style="text-align:center; font-size:21pt; height:50px; width:70px">
<br>
<br>
<input type="button" value="ermitteln" style="font-size:24pt; background-color: #32cd32; height:40px; width:500px;" onclick="Zufallszahl()">
<br>
<br>
<input type="reset" value="löschen" style="font-size:24pt; background-color:#ff4500; height:40px; width:500px;">
<br>
<br>
<input value="" type="text" name="ReihenfolgeFeld" style="text-align:center; font-size:21pt; height:50px; width:500px">
</form>

<script>

function Zufallszahl(){
	var t = parseInt(document.getElementById("Anzahl").value, 10);
	var n = Array.from({length: t}, function(u, i){return i + 1;});
	for (var i = t - 1; i >= 0; i -= 1){
		var swapIdx = Math.floor((i + 1) * Math.random());
		var temp = n[i];
		n[i] = n[swapIdx];
		n[swapIdx] = temp;
	}
	Reihenfolge.ReihenfolgeFeld.value = n.join(" - ");
}
</script>
</body>
</html>
- funktioniert nicht im IE... ;)
 
Zuallerserst bedanke ich mich mal für Eure Unterstützung.
Danke mikdoe.
Danke kkapsner.

... du im Quirksmode arbeitest, was man möglichst vermeiden sollte.

Nun wie es bei mir steht, binn ich ein Grünschnabel. Ich bin nicht wirklich am programieren. Also kann ich diese Aussage nicht wirklich nachvollziehen. Nur gelegentlich sammel ich mir codeschnipsel uns syntax im Netz um kleinere Aufgaben zu lösen. Auch wenn der Code nicht wirklich effizient ist genügt er doch unseren Ansprüchen. Wir sind da eher die Zocker (tank-racing.clans.de).

Herzlichen Dank für Eure Hilfe

Josch
 
Zurück
Oben