Cursor soll von Textfeld zu Textfeld springen
xNeTworKx
- javascript
0 Ed X0 Sven Rautenberg0 Steffen
Hello,
Ich habe 6 kleine Eingabefelder, nun will ich aber, daß wenn ich 2 Zahlen oder Buchstaben eingegeben habe, der Cursor automatisch ins nächste Eingabefeld springt, aber es läuft leider noch nicht so ganz wie ich das will, dH.er springt nicht weiter. Ich hab mir das Ganze so vorgestellt :
<html>
<head>
<title></title>
<script type="text/javascript" language="JavaScript">
function pruefen(i) {
if (document.Formular.zahl+i.value == 2) {
document.Formular.zahl+[i+1].focus();
}
}
</script>
</head>
<body>
<h1 align="center">SPEICHERN DER SPIELZAHLEN</h1>
<div align="center">
<form name="Formular">
<font size=+2>SPIEL 1 :</font>
ZAHL 1 <input name="zahl1" type="text" size="2" maxlength="2" onKeyDown="pruefen(1)"><nobr>
ZAHL 2 <input name="zahl2" type="text" size="2" maxlength="2" onKeyDown="pruefen(2)"><nobr>
ZAHL 3 <input name="zahl3" type="text" size="2" maxlength="2" onKeyDown="pruefen(3)"><nobr>
ZAHL 4 <input name="zahl4" type="text" size="2" maxlength="2" onKeyDown="pruefen(4)"><nobr>
ZAHL 5 <input name="zahl5" type="text" size="2" maxlength="2" onKeyDown="pruefen(5)"><nobr>
ZAHL 6 <input name="zahl6" type="text" size="2" maxlength="2" onKeyDown="pruefen(6)"><nobr>
</form>
</div>
</body>
</html>
Wie kann ich es umschreiben, daß es klappt ?
Hi,
ohne es getestet zu haben, ich würde folgendes machen,
<html>
<head>
<title></title>
<script type="text/javascript" language="JavaScript">
function pruefen(i) {
if (document.Formular.zahl+i.value == 2) {
document.Formular.zahl+[i+1].focus();
so nicht, greife anderszu:
document.forms['Formular'].elements['zahl'+1].
ersetze das, dann sollte es mit der stringaddition gehen
}
}
</script>
</head>
<body>
<h1 align="center">SPEICHERN DER SPIELZAHLEN</h1>
<div align="center">
<form name="Formular">
<font size=+2>SPIEL 1 :</font>
ZAHL 1 <input name="zahl1" type="text" size="2" maxlength="2" onKeyDown="pruefen(1)"><nobr>
ZAHL 2 <input name="zahl2" type="text" size="2" maxlength="2" onKeyDown="pruefen(2)"><nobr>
ZAHL 3 <input name="zahl3" type="text" size="2" maxlength="2" onKeyDown="pruefen(3)"><nobr>
ZAHL 4 <input name="zahl4" type="text" size="2" maxlength="2" onKeyDown="pruefen(4)"><nobr>
ZAHL 5 <input name="zahl5" type="text" size="2" maxlength="2" onKeyDown="pruefen(5)"><nobr>
ZAHL 6 <input name="zahl6" type="text" size="2" maxlength="2" onKeyDown="pruefen(6)"><nobr>
</form>
</div>
</body>
</html>
kleine korrektur, ich würde "onkeyup" abfrage, ist sinnvoller
bye eddie
<html>
<head>
<title></title>
<script type="text/javascript" language="JavaScript">
function pruefen(i) {
if (document.Formular.zahl+i.value == 2) {
Wenn in das Feld eine "2" geschrieben wurde? Sicher nicht, sondern wenn 2 Zeichen reingeschrieben wurden. Also
if (document.Formular.zahl+1.value.length == 2)
document.Formular.zahl+[i+1].focus();
Und was ist beim letzten Feld? Da gibts dann hier einen Fehler, weil es kein Feld 7 gibt. Böse...
}
}
</script>
</head>
<body>
<h1 align="center">SPEICHERN DER SPIELZAHLEN</h1>
<div align="center">
<form name="Formular">
<font size=+2>SPIEL 1 :</font>
ZAHL 1 <input name="zahl1" type="text" size="2" maxlength="2" onKeyDown="pruefen(1)"><nobr>
ZAHL 2 <input name="zahl2" type="text" size="2" maxlength="2" onKeyDown="pruefen(2)"><nobr>
ZAHL 3 <input name="zahl3" type="text" size="2" maxlength="2" onKeyDown="pruefen(3)"><nobr>
ZAHL 4 <input name="zahl4" type="text" size="2" maxlength="2" onKeyDown="pruefen(4)"><nobr>
ZAHL 5 <input name="zahl5" type="text" size="2" maxlength="2" onKeyDown="pruefen(5)"><nobr>
ZAHL 6 <input name="zahl6" type="text" size="2" maxlength="2" onKeyDown="pruefen(6)"><nobr>
Etwas zu viele <nobr> hier. Das ist ein Tag genau wie <font>, der umschlossene Bereich wird nicht umgebrochen. Fehlt also </nobr>. Abgesehen davon ist das Tag kein HTML-Standard, das macht man heutzutage mit CSS.
</form>
</div>
</body>
</html>
Ob das jetzt der Schlüssel zum Erfolg ist, vermag ich nicht zu sagen. Insbesondere kann es durchaus sein, daß onKeyDown in einigen Browsern Probleme macht und einfach nicht funktioniert.
- Sven Rautenberg
Hallo,
document.Formular.zahl+[i+1].focus();
Und was ist beim letzten Feld? Da gibts dann hier einen Fehler, weil es kein Feld 7 gibt. Böse...
ja ich weis, da hätt ich mich nachher drum gekümmert, wenn das eine Problem mal gelöst wurde =)
Etwas zu viele <nobr> hier. Das ist ein Tag genau wie <font>, der umschlossene Bereich wird nicht umgebrochen. Fehlt also </nobr>. Abgesehen davon ist das Tag kein HTML-Standard, das macht man heutzutage mit CSS.
Ok, das hab ich mir eingeprägt.
Ob das jetzt der Schlüssel zum Erfolg ist, vermag ich nicht zu sagen. Insbesondere kann es durchaus sein, daß onKeyDown in einigen Browsern Probleme macht und einfach nicht funktioniert.
Das is egal, weil das Script soll nur für mich alleine sein. Man kann die gespielten Lottozahlen eingeben, und später bei der Ziehung werden die gezogenen Zahlen durch Perl mit den Spielzahlen verglichen und alle Treffer aufgelistet usw.
Hi,
<html>
<head>
<title></title>
<script type="text/javascript" language="JavaScript">
var zahl = 0;
function pruefen(i)
{
var x = eval("document.Formular.zahl" + i);
i++;
var y = eval("document.Formular.zahl" + i);
if (x.value.length == 2 && i < 7)
{
y.focus();
}
}
</script>
</head>
<body>
<h1 align="center">SPEICHERN DER SPIELZAHLEN</h1>
<div align="center">
<form name="Formular">
<font size=+2>SPIEL 1 :</font>
ZAHL 1 <input name="zahl1" type="text" size="2" maxlength="2" onKeyDown="pruefen(1)"><nobr>
ZAHL 2 <input name="zahl2" type="text" size="2" maxlength="2" onKeyDown="pruefen(2)"><nobr>
ZAHL 3 <input name="zahl3" type="text" size="2" maxlength="2" onKeyDown="pruefen(3)"><nobr>
ZAHL 4 <input name="zahl4" type="text" size="2" maxlength="2" onKeyDown="pruefen(4)"><nobr>
ZAHL 5 <input name="zahl5" type="text" size="2" maxlength="2" onKeyDown="pruefen(5)"><nobr>
ZAHL 6 <input name="zahl6" type="text" size="2" maxlength="2" onKeyDown="pruefen(6)"><nobr>
</form>
</div>
</body>
</html>
Gruß
Steffen
Hey danke, es klappt. =)