Hi,
hab mir hier nicht alles durchgelesen, aber verwende das keypress Event.
Wurde das schon vorgeschlagen?
Dort hast du charCode oder keyCode (je nach Browser), daraus machst du mit String.fromCharCode das Zeichen.
Und das überprüfst du mit nem Regularen Ausdruck auf einen Wert zwischen 0-9.
Und wenns keine Zahl ist musst du das Event unterdrücken, mittels preventDefault/returnValue= false oder return false, je nach Implementierung deines Events.
Funktioniert auf jeden Fall, habe auch schon so gemacht.
Das ist besser als beim keyup Event, da man dort ja auch bei gedrückter Keytaste, mehrere Zeichen einfügen könnte, und man sieht ständig für einen kurzen Moment das Zeichen.
Gruß!