Input-Feld überwachen und nach Verlassen Inhalt formatieren

Eiszwerg

Erfahrenes Mitglied
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
 
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...
 
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:

Code:
<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>
 
Zuletzt bearbeitet:
Du hast die Klammern falsch gesetzt:
Code:
if (ticket.substr(3,1)!="-") ...
Gruß hpvw
 
Zurück