# Input-Feld überwachen und nach Verlassen Inhalt formatieren



## Eiszwerg (21. Juni 2005)

Einen wunderschönen liebe Community!

Wieder einmal stelle ich mich (und Euch) einer Herausforderung  
Ich möchte den Inhalt eines Input-Feldes bei dessen Verlassen in ein bestimmtes Format bringen (nnn-nnnnnnn/nn).
Dazu muss ich meiner Meinung nach 

1. überwachen, ob das Feld (gefüllt und) verlassen wird
2. den Inhalt formatieren

Hat jemand ähnliches schon einmal gemacht und/oder eine Idee, wie ich dies bewerkstelligen könnte?
Ist es überhaupt möglich?

Ich habe per Suche ähnliche Anfragen gesehen, welche meist darauf hinausliefen, dass die Form (in meinem Fall) 3 Input-Felder beinhaltete, welche dann zusammengeführt wurden.
Dies käme in meinem Fall aber nur in Frage, wenn man es bewerkstelligen könnte, dass der Cursor automatisch vom 1. ins 2. und dann ins 3. Input-Feld springen würde (Serial-Eingabe bei Spielen bspw.).

Bin für Anregungen sowie Codeschnipsel dankbar!

Gruss
Eiszwerg


----------



## hpvw (21. Juni 2005)

Bezüglich Eingabe überwachen:
http://www.tutorials.de/tutorials210004.html

Bezüglich Verlassen:
http://de.selfhtml.org/html/referenz/attribute.htm#input / onblur


----------



## Eiszwerg (21. Juni 2005)

Okay...
Das heisst ich könnte mit <input ... onBlur="formatieren();">
Auf jeden Fall schonmal meine Funktion für die Formatierung aufrufen.
Das gefällt mir und ich bedanke mich für den weiterführenden Link.

Nun muss ich mich wohl mit string-Zerlegung auseinandersetzen, um die eingegebenen Zahlen mit den Zeichen zu vermischen 

Ich geh dann mal...


----------



## Eiszwerg (21. Juni 2005)

Sodala...
Das wäre geschafft.
Allerdings gibt es scheinbar ein Problem.

Ich habe im Body-Tag der Seite ein onUnload="Hinweis();" eingebaut.
Sobald ich den, im Text auskommentierten (fettgedruckt unten) IF-Teil aktiviere funktioniert die Hinweis-Funktion nicht mehr. Besser gesagt keine Funktion geht mehr.
Weiss vielleicht jemand warum?
Hier mal die JS-Funktionen:


```
<script type="text/javascript">
Click=0;
//ticket=0; 
function Hinweis ()
{
if (!Click) window.open('safe.php?no=1&id=<? echo $id; ?>', 'Abbruch', 'width=200,height=100, scrollbars=no');
}
function fastwrite(x, Feld)
{
eval("document.Stoerung."+Feld+".value = x");
eval("document.Stoerung."+Feld+".focus()");
}
function mydate(Feld)
{
var tag, monat, jahr
jetzt = new Date ();
tag = jetzt.getDate();
monat = jetzt.getMonth()+1;
if (monat<10) monat="0"+monat;
jahr = jetzt.getYear();
fulldate = jahr + "-" + monat + "-" + tag;
eval("document.Stoerung."+Feld+".value = fulldate");
eval("document.Stoerung."+Feld+".focus()");
}
function formatieren ()
{
ticket = document.Stoerung.ticket.value;
  /*  if (ticket.substr(3,1))!="-"
  {*/  vorne = ticket.substr(0, 3);
  mitte = ticket.substr(3,7);
  hinten = ticket.substr(10,2);
  ticketnr = vorne+"-"+mitte+"/"+hinten;
  document.Stoerung.ticket.value = ticketnr;
  //}}
</script>
```


----------



## hpvw (21. Juni 2005)

Du hast die Klammern falsch gesetzt:

```
if (ticket.substr(3,1)!="-") ...
```
Gruß hpvw


----------



## Eiszwerg (21. Juni 2005)

Ich bin so ein Trottel... *DANKE!*
Manchmal sieht man eben den Wald vor lauter Bäumen nicht.


----------

