Ti propongo uno script completamente diverso, che funziona in tutti i browser (il tuo no).
codice:
function onlynum(cc) {
var str = cc.value;
if(str.match(/^[0-9]+\.[0-9]*$/) {
return true;
} else {
cc.value = str.substr(0,str.length-1);
cc.focus();
return false;
}
}
va chiamata al onkeyup di un campo tipo text:
onkeyup="return onlynum(this);"
testa che ci sia almeno un numero, un solo punto (obbligatorio) e una serie di numeri (opzionali).
Si puo` anche chiamare all'evento onblur o onchange, ma in tal caso occorre modificare la riga subito sotto l'else in:
cc.value = "";