Ciao, ho un campo input per cui voglio permettere solo di inserire
numeri, la virgola e il punto.
Usando jquery (ma non dovrebbe essere importante) assegno la funzione
all'input in questo modo:
codice:
$('.only_numbers').bind('keydown', function(e) {
onlyNumbers(e);
});
e la funzione onlyNumbers è fatta cosi:
codice:
function onlyNumbers(e) {
key = e.keyCode;
if(debug) log("onlyNumbers\nkey_code:"+key);
if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) ||
(key==27) ) return true;
keychar = String.fromCharCode(key);
if(debug) log("keychar:"+keychar);
// numbers
if((("0123456789.,").indexOf(keychar) > -1)) {
if(debug) log('carattere accettato');
return true;
}
if(debug) log('carattere NON accettato');
return false;
}
Sia con firefox che con explorer la funzione c'è qualcosa che non va nei
codice caratteri.
Il log seguente mostra quello che succede se inserisco "a1,3."
codice:
onlyNumbers key_code:65
keychar:A
carattere NON accettato
onlyNumbers key_code:49
keychar:1
carattere accettato
onlyNumbers key_code:188
keychar:¼
carattere NON accettato
onlyNumbers key_code:51
keychar:3
carattere accettato
onlyNumbers key_code:190
keychar:¾
carattere NON accettato
I miei file php/tpl sono in utf8, l'header della pagina è utf8 e i file
javascript pure.
Qualche consiglio?
grazie, ciao