HighDots Forums  

funzione generalizzata per filtrare i tasti

Javascript (Italian) Il linguaggio JavaScript (it.comp.lang.javascript)


Discuss funzione generalizzata per filtrare i tasti in the Javascript (Italian) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
simple:maL
 
Posts: n/a

Default funzione generalizzata per filtrare i tasti - 05-16-2006 , 09:04 AM






se qualche anima pia ha 2 sec..
stavo tentando di fare una funzioncina da usare sempre per filtrare i
dati inseriti nelle text... ma mi da 2 milioni di errori..
e alla fine sto' per rinunciarci..


<input type="text" onkeydown="FiltraKey('numeri',event);">


function FiltraKey(typeFilter,e)
{
Filter = typeFilter.toLowerCase();
// Gecko riceve l'evento come parametro in e
var ev=e?e:event;
// IE valorizza l'obj event
var keyPressed=ev.charCode?ev.charCode:ev.keyCode; // IE non ha charCode
// variabile che verifica se ci sono errori
var keyOut = false ;

switch (Filter)
{
case 'numeri':
if ( !( keyPressed<=47 || (keyPressed>=48 && keyPressed<=57) ||
(keyPressed>=96 && keyPressed<=105) ) )
{
keyOut = true ;
alert ("Attenzione puoi inserire solo i caratteri\n1234567890");
}
break;
case 'tel':
if ( !( keyPressed<=47 || keyPressed==109 || keyPressed==189 ||
(keyPressed>=48 && keyPressed<=57) || (keyPressed>=96 &&
keyPressed<=105) ) )
{
keyOut = true ;
alert ("Attenzione il formato di un n.ro di telefonico deve
essere\n####-#######");
}
break;
case 'data':
if ( !( keyPressed<=47 || keyPressed==55 || keyPressed==111 ||
(keyPressed>=48 && keyPressed<=57) || (keyPressed>=96 &&
keyPressed<=105) ) )
{
keyOut = true ;
alert ("Attenzione il formato della data deve essere\n##/##/####");
}
break;
case 'valuta':
if ( !( keyPressed<=47 || (keyPressed>=48 && keyPressed<=57) ||
(keyPressed>=96 && keyPressed<=105) || keyPressed==190 || keyPressed==110 ))
{
keyOut = true ;
alert ("Attenzione puoi inserire solo i caratteri\n1234567890 ed il .
per i decimali.");
}
break;
default:
alert ("Tipo di filtro non riconosciuto");
break;
}
// pressione di tasto non consentito
if (keyOut)
{
// Gecko usa preventDefault // IE usa returnValue
if (ev.preventDefault) { e.preventDefault(); }
else if('returnValue' in ev ) { ev.returnValue=false; }
}
}

Reply With Quote
  #2  
Old   
raenkrus
 
Posts: n/a

Default Re: funzione generalizzata per filtrare i tasti - 05-16-2006 , 10:47 AM







maL ha scritto:

Quote:
se qualche anima pia ha 2 sec..
stavo tentando di fare una funzioncina da usare sempre per filtrare i
dati inseriti nelle text... ma mi da 2 milioni di errori..
e alla fine sto' per rinunciarci..

Posta questi 2 milioni di errori, a me la console di Firefox non
ritorna
nessun errore, eccezion fatta per
"Errore: [Exception... "'Permesso negato per impostare la proprietà
XULElement.selectedIndex' when calling method:
[nsIAutoCompletePopup::selectedIndex]" nsresult: "0x8057001e
(NS_ERROR_XPC_JS_THREW_STRING)" location: "JS frame ::
file:///D:/Lavori%20Iniziati/filtra_tasti.html :: FiltraKey :: line 22"
data: no]
File sorgente: file:///D:/Lavori%20Iniziati/filtra_tasti.html
Riga: 22"

Su IE6 nessun problema, certo bisogna però vedere quali sono i tuoi
obiettivi.
Devi controllare che l'utente inserisca valori numerici, nello
specifico una data?
Però col tuo codice io posso inserire anche caratteri come !"£$%&()=
che con
le date non hanno nulla a che fare.

Consiglio: usa le espressioni regolari, risparmi tempo e righe di
codice, in più guadagni in precisione ed affidabilità.



Reply With Quote
  #3  
Old   
simple:maL
 
Posts: n/a

Default Re: funzione generalizzata per filtrare i tasti - 05-17-2006 , 03:41 AM



raenkrus ha scritto:
Quote:
Posta questi 2 milioni di errori...
mmm.. beh, con le ultime modifiche effettivamente di errori c'è solo
quello (che approposito nn avevo mai visto e non ho idea a cosa si
riferisca)... ma oltretutto a me fa scrivere anche "a" x es. dove dovrei
scrivere solo numeri!

Quote:
Consiglio: usa le espressioni regolari, risparmi tempo e righe di
codice, in più guadagni in precisione ed affidabilità.
mi potresti spiegare meglio il consiglio?
non ho capito bene che intendi!!
grazie, ciau

simple_maL


Reply With Quote
  #4  
Old   
ZER0
 
Posts: n/a

Default Re: funzione generalizzata per filtrare i tasti - 05-17-2006 , 03:55 AM



On Wed, 17 May 2006 09:41:36 +0200, simple:maL wrote:

Quote:
mmm.. beh, con le ultime modifiche effettivamente di errori c'è solo
quello (che approposito nn avevo mai visto e non ho idea a cosa si
riferisca)...
http://groups.google.it/group/it.com...18637572957018

--
"E' un vero peccato che tutte le persone che sanno come far funzionare
il Paese siano troppo occupate a guidare taxi o a tagliare capelli."
(George Burns)



Reply With Quote
  #5  
Old   
raenkrus
 
Posts: n/a

Default Re: funzione generalizzata per filtrare i tasti - 05-17-2006 , 04:50 AM




maL ha scritto:

Quote:
mi potresti spiegare meglio il consiglio?
non ho capito bene che intendi!!
grazie, ciau

simple_maL
per le operazioni sulle stringhe le Regular Expression sono
il metodo più potente; non sono una prerogativa di Javascript,
esistono per Perl, per PHP, per C... La sintassi più o meno è
identica, comincia informati qui:

http://web.tiscali.it/alexmfm/reg_exp.html
http://www.lukeonweb.net/leggi.asp?id=438
http://www.jsdir.com/tutorials/cfregexp.asp?page=0

raenkrus



Reply With Quote
  #6  
Old   
simple:maL
 
Posts: n/a

Default Re: funzione generalizzata per filtrare i tasti - 05-17-2006 , 05:29 AM



raenkrus ha scritto:
grazie per il suggerimento, ho verificato un po', ma nn penso sia la
soluzione che cerco... io vorrei proprio inibire la possibilità di usare
caratteri non attesi per una determinata text...
sto' ancora cercando una soluzione..
grazie cmq..
ciao
maL


Reply With Quote
  #7  
Old   
raenkrus
 
Posts: n/a

Default Re: funzione generalizzata per filtrare i tasti - 05-17-2006 , 05:57 AM




maL ha scritto:

Quote:
sto' ancora cercando una soluzione..
[OT]sto va senza accento ;-) [/OT]

altre soluzioni escludendo le RegExp? Mah... la vedo dura.
Fidati, spendi un po' di tempo per imparare la sintassi delle
espressioni regolari, non ne potrai fare più a meno!

Quote:
grazie cmq..
ciao
maL
prego.

raenkrus



Reply With Quote
  #8  
Old   
simple:maL
 
Posts: n/a

Default Re: funzione generalizzata per filtrare i tasti - 05-17-2006 , 06:07 AM



raenkrus ha scritto:
Quote:
maL ha scritto:

sto' ancora cercando una soluzione..

[OT]sto va senza accento ;-) [/OT]
stavo tentando le RegExp

simple_maL


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.