Поскольку событие инициировано onkeypress
, для этого события decimal / fullstop / point keyCode является keyCode=46
Таким образом, условная логика функции будет следующей:
var ret = ((keyCode >= 48 && keyCode <= 57) || keyCode == 46);
И это решает проблему.