Formularabfrage ob Value Zahl ist auf mehre Input-Felder setzen
Jens
- javascript
0 Bio0 Maxx0 Axel Richter0 jens
Hallo,
habe das Problem, dass ich mit einer Funktion (istZahl), prüfen will ob das aktuelle Textfeld eine Zahl enthält. Das Problem ist jedoch dass ich den Focus auf das jeweilige Textfeld nicht dynamisch festlegen kann, bzw. weiß ich nicht wie es geht...
Hier der Code:
JAVASCRIPT:
<script language=JavaScript>
function istZahl(inputname,wort)
{
ist_zahl=true;
if(wort.length==0)
ist_zahl=true;
else
for(n=0;n<wort.length;n++)
{if(wort.charAt(n)<"0"||wort.charAt(n)>"9")ist_zahl=false;}
if(!ist_zahl)
{
alert("Keine gültige Zahl eingetragen");
window.document.form1.inputname.focus();
}
}
</script>
HTML:
<input type="text" size="15" name="feld1" onBlur="istZahl(this,this.value)">
HINWEIS: Bei dem Aufruf window.doc.....inputname liegt das Problem, da ich hier nicht das Objekt mit dem Namen "feld1" herein bekomme...
Danke schonmal, gruß jens
Sup!
Dein Code sieht 'eh bloedsinnig aus.
mit this hast Du doch schon das richtige Objekt.
Dann solltest Du mit this.name und this.value Namen und value bekommen, wobei Du this.name nicht brauchst, weil Du mit this schon das Objekt hast, von dem this.name der Name ist, mit dessen Hilfe Du dann das Objekt fokussieren willst... was irgendwie anscheinend auch Schwachsinn ist, denn wenn das Objekt nicht schon den Fokus haette, dann wuerde diese Ueberpruefungsfunktion doch niemals aufgerufen, und dann enthielte this auch nicht das richtige Objekt...
Oder irre ich mich da gerade fatal?
Gruesse,
Bio
Hallo,
Oder irre ich mich da gerade fatal?
Ja, denn die Funktion zum Prüfen wird onblur aufgerufen.
viele Grüße
Axel
Hallo Jens,
habe das Problem, dass ich mit einer Funktion (istZahl), prüfen will ob das aktuelle Textfeld eine Zahl enthält. Das Problem ist jedoch dass ich den Focus auf das jeweilige Textfeld nicht dynamisch festlegen kann, bzw. weiß ich nicht wie es geht...
sieh dir einmal dieses Beispiel an:
http://selfhtml.teamone.de/javascript/objekte/event.htm#allgemeines
interessant ist hierbei das "return true;" nach der Ausgabe des events. Denkbar wäre es an dieser Stelle bereits "unerwünschte" Tastendrücke zu unterdrücken. Etwa: if(Taste != Zahl) return false;
Du wirst allerdings nicht umhinkommen dir im onFocus() des jeweiligen Eingabefeldes zu merken: Bin ich ein "Nur Zahlen" Eingabefeld oder ein anderes. Und dann im Eventhandler entsprechend zu reagieren.
HTH
Jochen
Hallo,
Hier der Code:
JAVASCRIPT:
<script language=JavaScript>
<script type="text/javascript">
function istZahl(inputname,wort)
{
ist_zahl=true;
if(wort.length==0)
ist_zahl=true;
else
for(n=0;n<wort.length;n++)
{if(wort.charAt(n)<"0"||wort.charAt(n)>"9")ist_zahl=false;}
if(!ist_zahl)
{
alert("Keine gültige Zahl eingetragen");
//window.document.form1.inputname.focus();
inputname.focus();
}
}
</script>HTML:
<input type="text" size="15" name="feld1" onBlur="istZahl(this,this.value)">
Hier übergibst Du als ersten Parameter das Eingabefeld selbst (this) als Object. Das steht in der Funktion dann in der Variablen inputname. Damit kann der Focus mit inputname.focus() gesetzt werden. Die Übergabe des zweiten Parmeters ist eigentlich überflüssig, weil mit inputname.value jederzeit auf den Wert im Feld zugegriffen werden kann.
Zur Überprüfung auf Nur-Ziffern-Inhalt, schau Dir mal das RegExp-Object näher an. Du kannst Dir damit Deine for-Schleife sparen.
http://selfhtml.teamone.de/javascript/objekte/string.htm#match
viele Grüße
Axel
geht alles super, danke für eure hilfe!