Saludos Rodrigo,
Veamos dos ejemplos distintos.
Uno, es insensible a las teclas no numéricas:
<script language="JavaScript">
<!--
var nav4 = window.Event ? true : false;
function acceptNum(evt){
var key = nav4 ? evt.which : evt.keyCode;
return (key <= 13 || (key>= 48 && key <= 57));
}
//-->
</script>
Campo 1: <input type="text" name="valor" size="20" maxlength="20"
onKeyPress="return acceptNum(event)">
Campo 2: <input type="text" name="valor" size="20" maxlength="20"
onKeyPress="return acceptNum(event)">
Campo 3: <input type="text" name="valor" size="20" maxlength="20"
onKeyPress="return acceptNum(event)">
Campo 4: <input type="text" name="valor" size="20" maxlength="20"
onKeyPress="return acceptNum(event)">
_______________________________________________________________
Dos, testea el contenido de los campos:
<script type="text/javascript">
<!--
function tests(){
var x=document.getElementById("myForm");
for (var i=0;i<x.length-1;i++)
{
if (isNaN(x.elements[i].value))confirm("El valor "+ x.elements[i].value+" no es válido");
}
}
//-->
</script>
<form id="myForm">
Campo 1: <input id="num" type="text" value="" />
Campo 2: <input id="num" type="text" value="" />
Campo 3: <input id="num" type="text" value="" />
Campo 4: <input id="num" type="text" value="" />
<br><br>
<input id="but" type="button" value="Test" onclick="tests()" />
</form>
_______________________________________________________________
Las dos opciones cumplen los criterios de discriminar lo que no sea numérico.
Los campos se pueden ampliar indefinidamente. Copia y repite los campos cuantas veces quieras. Fíjate que sean idénticos. He puesto sólo cuatro campos, por motivos de limitación en el foro.
Espero te sea útil.