Formulareingaben prüfen und steuern
ally2
- javascript
Hallo Zusammen,
hoffe ich stelle meine Anfrage in den richtigen Themenbereich.
Folgendes Problem: In einem Text-Feld landen durch ein anderes Script bestimmte Zahlen, welche ich nun auslesen und in in bestimmt Text-Felder bringen möchte. Unten folgt ein laufendes Sript mit dem ich einzelne Werte in die richtigen Textfelder bringen kann.
Script:
<script language="javascript">
<!--
// Copy
var text1 = "800";´
var text2 = "900";
var text3 = "1000";
function pruefen()
{
if (document.formular.mytext1.value == text1)
{
document.formulareingabe.mytext1a.value = text1;
}
if (document.formular.mytext1.value == text2)
{
document.formulareingabe.mytext2a.value = text2;
}
if (document.formular.mytext1.value == text3)
{
document.formulareingabe.mytext3a.value = text3;
}
}
// -->
</script>
</head>
<body>
<form name="formular">
<input type="text" name="mytext1" /><br />
</form>
<form name="formulareingabe">
<input type="text" name="mytext1a" onFocus="pruefen()" /><br />
<input type="text" name="mytext2a" /><br />
<input type="text" name="mytext3a" /><br />
</form>
</body>
</html>
Wenn im Text-Feld "mytext1" die Zahl 800 steht, wird diese in das Feld "mytext1a" geschrieben. Steht eine 900 oben wird diese in das Feld "mytext2a" gschrieben. So weit alles in Ordnung. Nun erscheinen im Feld "mytext1" die Zahlen 800 900 1000. Nun sollen diese Zahlen in die Felder "mytext1a" die 800, "mytext2a" die 900 und in "mytext3a" die 1000 geschrieben werden. Das funktioniert nicht. Hat jemand eine Idee?
Schöne Grüße und vielen Dank
Ally
Script:
<script language="javascript">
Keine Ahnung ob dir das schon jemand gesagt hat, aber das language Attribute wird seit einiger Zeit nicht mehr empfohlen (ca. 10 Jahre) und das type Attribut ist seit dieser Zeit ein Pflichattribut.
Das funktioniert nicht. Hat jemand eine Idee?
Was heißt funktioniert nicht? Wie lautet die Fehlermeldung?
Struppi.
Hallo Struppi,
Script:
<script language="javascript">
Keine Ahnung ob dir das schon jemand gesagt hat, aber das language Attribute wird seit einiger Zeit nicht mehr empfohlen (ca. 10 Jahre) und das type Attribut ist seit dieser Zeit ein Pflichattribut.
Das wusste ich nun nicht. Werde mich schlau machen und auf den neuesten Stand bringen. Vielen Dank.
Das funktioniert nicht. Hat jemand eine Idee?
Was heißt funktioniert nicht? Wie lautet die Fehlermeldung?
»»
Eine Fehlermeldung gibt es in dem Falle nicht, er macht nix und die Felder bleiben leer. Sobald im Text-Feld "mytext1" die Zahlen 800 900 1000 geschrieben sind, bleiben die Felder unten leer, sobald ich auf das hinterlegte onFocus Feld springe. Er sollte beim onFocus die Zahlen entsprechend auf die Felder unten aufteilen.
Ally
Struppi.
Moin
Nun erscheinen im Feld "mytext1" die Zahlen 800 900 1000.
gleichzeitig? Diesen Fall hast du bei deinen Abfragen nicht berücksichtigt.
Gruß
rfb
Moin
Nun erscheinen im Feld "mytext1" die Zahlen 800 900 1000.
gleichzeitig? Diesen Fall hast du bei deinen Abfragen nicht berücksichtigt.
Yep, sobald die Zahlen 800 900 1000 dort stehen, soll er sie unten auf die Felder verteilen. Eine Idee?
Gruß
rfb
hi,
Yep, sobald die Zahlen 800 900 1000 dort stehen, soll er sie unten auf die Felder verteilen. Eine Idee?
http://de.selfhtml.org/javascript/objekte/string.htm
gruß,
wahsaga
Moin
hi,
Yep, sobald die Zahlen 800 900 1000 dort stehen, soll er sie unten auf die Felder verteilen. Eine Idee?
mit der dort zu findenden Methode split() den Eingabestring in ein Array aufteilen und in einer einfachen for-Schleife für alle Elemente des Arrays deine Abfragen durchführen.
Gruß
rfb
Moin
hi,
Yep, sobald die Zahlen 800 900 1000 dort stehen, soll er sie unten auf die Felder verteilen. Eine Idee?
mit der dort zu findenden Methode split() den Eingabestring in ein Array aufteilen und in einer einfachen for-Schleife für alle Elemente des Arrays deine Abfragen durchführen.
Ich habe mir die split() Methode dort angeschaut, aber leider fehlt mir noch die Übung, um das jetzt bei mir umzusetzen. Stehe am Anfang meines Wissens und vielleicht könnte mir jemand das mal kurz erklären. Das wäre wirklich super. Vielen Dank nochmals.
Gruß
Ally
Gruß
rfb
Moin
<script type="text/javascript">
function pruefen() {
var text1 = "800";´
var text2 = "900";
var text3 = "1000";
var eingabe = document.formular.mytext1.value.split(" ");
for (var i=0; i<eingabe.length; i++) {
if (eingabe[i] == text1) document.formulareingabe.mytext1a.value = text1;
if (eingabe[i] == text2) document.formulareingabe.mytext2a.value = text2;
if (eingabe[i] == text3) document.formulareingabe.mytext3a.value = text3;
}
}
</script>
Gruß
rfb
Moin
<script type="text/javascript">
function pruefen() {
var text1 = "800";´
var text2 = "900";
var text3 = "1000";
var eingabe = document.formular.mytext1.value.split(" ");
for (var i=0; i<eingabe.length; i++) {
if (eingabe[i] == text1) document.formulareingabe.mytext1a.value = text1;
if (eingabe[i] == text2) document.formulareingabe.mytext2a.value = text2;
if (eingabe[i] == text3) document.formulareingabe.mytext3a.value = text3;
}
}
</script>
>
> Gruß
> rfb
Vielen Dank dafür.. Läuft leider noch nicht.. Vielleicht noch ne kleine Hilfe. So sieht das Script dank der Hilfe von rfb nun insgesamt aus:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Unbenanntes Dokument</title>
<script type="text/javascript">
function pruefen() {
var text1 = "800";´
var text2 = "900";
var text3 = "1000";
var eingabe = document.formular.mytext1.value.split(" ");
for (var i=0; i<eingabe.length; i++) {
if (eingabe[i] == text1) document.formulareingabe.mytext1a.value = text1;
if (eingabe[i] == text2) document.formulareingabe.mytext2a.value = text2;
if (eingabe[i] == text3) document.formulareingabe.mytext3a.value = text3;
}
}
</script>
</head>
<body>
<form name="formular">
<input type="text" name="mytext1" /><br />
</form>
<form name="formulareingabe">
<input type="text" name="mytext1a" onFocus="pruefen()" /><br />
<input type="text" name="mytext2a" /><br />
<input type="text" name="mytext3a" /><br />
</form>
</body>
</html>
Er meldet mir nun, sobald ich im onFucus Feld stehe folgende Fehlermeldung:
Zeile: 28
Zeichen: 1
Fehler: Objekt erwartet
Code: 0
Moin
var text1 = "800";´
entferne mal hier das allerletzte Zeichen in der Zeile!
Gruß
rfb
Moin
var text1 = "800";´
entferne mal hier das allerletzte Zeichen in der Zeile!Gruß
rfb
Oweia.. Schäm.. Super, das war es.. Vielen Dank...
Schönen Gruß
Ally
Moin
Oweia.. Schäm..
dito - mir ist's beim Kopieren auch nicht aufgefallen
Gruß
rfb
Moin
Oweia.. Schäm..
dito - mir ist's beim Kopieren auch nicht aufgefallenGruß
rfb
Eine super Sache..Vielen Dank nochmals. Läuft prima.. :-)
Hätte noch eine kleine Frage, wenn ich darf. Gibt es jetzt noch die Möglichkeit in einer neuen Funktion die erste und die letzte Zahl auszulesen und gesondert auszugeben? In meinem Beispiel, die 800 in ein Feld und die 1000 in ein weiteres Feld. Sozusagen, der erste und der letze Wert in dem Feld.
Moin
Gibt es jetzt noch die Möglichkeit in einer neuen Funktion die erste und die letzte Zahl auszulesen und gesondert auszugeben? In meinem Beispiel, die 800 in ein Feld und die 1000 in ein weiteres Feld. Sozusagen, der erste und der letze Wert in dem Feld.
auf den ersten Wert greifst du zu mit
eingabe[0]
auf den letzten mit
eingabe[eingabe.length-1]
(bei nur einem Wert sind das dann dieselben)
also brauchst du nur die Zeilen
document.formulareingabe.erster.value=eingabe[0];
document.formulareingabe.letzter.value=eingabe[eingabe.length-1];
ans Ende der Funktion einfügen (und die Formularfelder mit name="erster" / "letzter" ins Formular "formulareingabe")
Gruß
rfb
Moin
Gibt es jetzt noch die Möglichkeit in einer neuen Funktion die erste und die letzte Zahl auszulesen und gesondert auszugeben? In meinem Beispiel, die 800 in ein Feld und die 1000 in ein weiteres Feld. Sozusagen, der erste und der letze Wert in dem Feld.
auf den ersten Wert greifst du zu mit
eingabe[0]
auf den letzten mit
eingabe[eingabe.length-1]
(bei nur einem Wert sind das dann dieselben)
also brauchst du nur die Zeilendocument.formulareingabe.erster.value=eingabe[0];
document.formulareingabe.letzter.value=eingabe[eingabe.length-1];ans Ende der Funktion einfügen (und die Formularfelder mit name="erster" / "letzter" ins Formular "formulareingabe")
Gruß
rfb
Noch ein SUPER. Läuft prima.. Vielen Dank, hast mir sehr geholfen.. :-)