Gracias a las consultas y los aportes de todos en los comentarios, se actualizó este código al 18 de julio ’12.
Fue probado en Google Chrome, Firefox, IE.

Más de una vez necesitamos que los usuarios de nuestra web, etc solo puedan ingresar números en un textbox, esto tiene más de una aplicación:

  • Si el dato se enviará a una base, y el campo es Integer.
  • Ayuda a prevenir SQL Injection
  • Enseñarles a los usuarios que si digo número, NUMEROS!.

Consta de dos partes:

1. En tu archivo js, o entre las etiquetas <script> y </script> pegá lo siguiente:

<script>
function validarNro(e) {
var key;
if(window.event) // IE
	{
	key = e.keyCode;
	}
else if(e.which) // Netscape/Firefox/Opera
	{
	key = e.which;
	}

if (key < 48 || key > 57)
    {
    if(key == 46 || key == 8) // Detectar . (punto) y backspace (retroceso)
        { return true; }
    else 
        { return false; }
    }
return true;
}

</script>

2. En el campo de texto que quieras validar / restringir agregar el evento onkeypress para llamar a la función:

<input type="text" name="textfield" id="textfield" onkeypress="javascript:return validarNro(event)" />

Código completo:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Validar textobox que reciba solo números</title>
<script language="javascript">
function validarNro(e) {
var key;
if(window.event) // IE
{
key = e.keyCode;
}
else if(e.which) // Netscape/Firefox/Opera
{
key = e.which;
}
if (key < 48 || key > 57)
{
if(key == 46 || key == 8 ) // Detectar . (punto) y backspace (retroceso)
{ return true; } else { return false; }
}
return true;
}
</script>
</head>
<body>
<p><strong>Validar textbox que reciba solo números</strong><br />
<a href="http://blog.nicolasmendez.com.ar">blog.nicolasmendez.com.ar</a>
<form id="form1" name="form1" method="post" action="">
<input type="text" name="textfield" id="textfield" onkeypress="javascript:return validarNro(event)" />
</form>
</p>
</body>
</html>

Probar este ejemplo.