Olá pessoal,

Confiram esta função que criei para bloquear números em um campo.


function somenteNumero(obj,e)
{

  var valor, val;

  liberado = new Array(',','.');
  liberadoE = new Array(188,190,8);

  valor = obj.value;
  if(document.all)
  {
    if(!((e.keyCode > 47 && e.keyCode < 58) || Array.find(liberadoE,e.keyCode) != '-1' ))     {
        obj.value = valor.substr(0,valor.length - 1);
    }
  }
  else
  {
    val = '';

    for (x = 0; x < valor.length; x++)
    {
      if(!isNaN(valor[x]) || Array.find(liberado,valor[x]) != '-1')
      {
        val += valor[x];
      }
    }
    obj.value = val;
  }
}

Array.find = function(ary, element)
{
    for(var i=0; i     {
        if(ary == element)
        {
            return i;
        }
    }
    return -1;
}


Vejam que tenho um array chamado liberado em que você pode liberar alguns caractéres, caso trabalhe com valores de preços.
CUIDADO se remover do array liberado, remova os dois primeiros valores do array liberadoE que são utilizados para tratar no IE.

Uso da função no campo