Wenn ich so drüber nachdenke: Eigentlich braucht man den Timer gar nicht. Man kann die Prüfung sofort im OnChange Event durchführen, solange diese Prüfung die Eingabe nicht stört. Der Timer hätte nur den Vorteil, dass der User nicht unnötig eine Fehlermeldung angezeigt bekommt, wenn er mit der Eingabe noch gar nicht fertig ist.
Aber genau das ist ja gerade das problem, woher soll code im OnChange nun wissen was legal (erfolgt noch mehr?...) und was es nicht ist (dies war der einzige input, ersetze eingabe mit min/max). An dieser Stelle ist eine Prüfung falsch.