Utilizza questo che ho fatto...

<script>
function soloNumeri() {
var testoNumerico = document.Calcol.num1.value;
if(isNaN(testoNumerico))
{
alert("Inserire solo valori numerici, grazie!");
filtro=/^[\d\.]$/
stringa='';
lunghezza = document.Calcol.num1.value.length;
//if(!(filtro.test(document.Calcol.num1.value))) alert('no');
for(i=0;i<lunghezza;i++){
if(filtro.test(testoNumerico.charAt(i))) stringa=stringa+testoNumerico.charAt(i)
}
document.Calcol.num1.value= stringa;
}
}
</script>
<form name="Calcol">
<input type="text" name="num1" size="10" onKeyUp="soloNumeri()" style="text-align: Right; width: 80px; border: Solid 1px #000000; color: #000000; font: Bold 11px Verdana;">
</form>

Ciao David