Hi,
ich würde hier einen anderen Ansatz verfolgen, und zwar beim keypress event, das Zeichen ermitteln. wenn es eine Zahl ist, dann ok, sonst das event mit preventDefault canceln, so dass das Zeichen erst gar nicht eingegeben wird.
Ansonsten kannst du auch noch mit isNaN, isFinite oder parseInt arbeiten.
Gruß!