A seguinte função de Javascript verifica se o argumento é um número, Tab ou Enter:
Para forçar o input a aceitar apenas números, e ainda permitir que o Tab mude de campo e o Enter envie o formulário, chame-a assim:
Bom para chamar em campos de Telefone ou Data!
É fácil mudar a função para aceitar vÃrgula e ponto, caso você precise validar valores em moeda corrente ou com decimal. Dê um alert(nTecla); e veja os códigos de cada tecla que você precisar deixar passar.