se è il primo scirpt che hai postato che non funziona, ti basta cambiare event.keycode con keycode
se è il primo scirpt che hai postato che non funziona, ti basta cambiare event.keycode con keycode
ciao vindav, intedi questa riga:
codice:if ((event.keyCode > 32 && event.keyCode < 48 && event.keyCode != 39 && event.keyCode != 47) || (event.keyCode > 57 && event.keyCode < 65) || (event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode > 90 && event.keyCode < 97) || (event.keyCode==124))
e cambiarla così?
codice:if ((keyCode > 32 && keyCode < 48 && keyCode != 39 && keyCode != 47) || (keyCode > 57 && keyCode < 65) || (keyCode >= 48 && keyCode <= 57) || (keyCode > 90 && keyCode < 97) || (keyCode==124))
ho provato ma poi non funziona.....
vic53 nei post precedenti suggeriva questo errore,
si può vedere se modificando lì si risolve l'errore su firefox?La condizione che stai usando mettendo piu "not =" insieme è l'errore che cerchi... != per intenderci...
credo qui, nel pezzo evidenziato in blu....
codice:if ((event.keyCode > 32 && event.keyCode < 48 && event.keyCode != 39 && event.keyCode != 47) || (event.keyCode > 57 && event.keyCode < 65) || (event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode > 90 && event.keyCode < 97) || (event.keyCode==124))
ciao andrea, l'esempio postato "potrebbe" pure funzionare se non che:
- non permette di inserire caratteri accentati (es. ì è é ò à)
- se erroneamente si premono due o pià tasti insieme si ottiene questo
non sarebbe possibile partire dal mio primo script postato e provare a correggere il problema relativo a firefox?
ciao andrea, l'esempio postato "potrebbe" pure funzionare se non che:
- non permette di inserire caratteri accentati (es. ì è é ò à)
- se erroneamente si premono due o pià tasti insieme si ottiene questo
non sarebbe possibile partire dal mio primo script postato e provare a correggere il problema relativo a firefox?
Non sono cosi ferrato su event.keyCode, ho modificato la pagina demo ora dovrebbe andare bene, altrimenti attendi altre soluzioni.Originariamente inviato da eccoinsorgo
... non sarebbe possibile partire dal mio primo script postato e provare a correggere il problema relativo a firefox?![]()
Cavicchi Andrea
Problemi con javascript, jquery, ajax clicca qui
ciao andrea, grazie per la risposta, ho guardato nuovamente la demo, in effetti va meglio... poi io ho aggiunto uno spazio alla fine di questo pezzo [a-zA-Zèéàòìù ] (non so come si chiama) per far accettare appunto lo spazio (es. un cognome tipo de andrè).
Ho fatto poi alcune prove, però la mia ignoranza evidentemente mi fa commettere errori e non mi fa capire dove sono...
Posto del codice che effettivamente fa quello che deve fare...
codice:<!DOCTYPE html> <html> <head> <meta content="text/html; charset=windows-1252" http-equiv="Content-Type"> <title>Senza nome 1</title> </head> <body> <form name="validation" onsubmit="return controllaForm(this);" action="utente-2.php" method="post" style="text-align:left;"> Inserisci una e-mail valida<input type="text" size="25" name="email" id="email"> Sito web<input type="text" size="35" name="web" id="web"> Tel. fisso o cell.<font color="red">*</font><input id="TEL" type="text" name="tel" size="15" maxlength="10" onkeyup="if(this.value.length>0 && !this.value.match(/^[0-9]+$/)){alert('Sono consentiti solo caratteri numerici (0-9)');this.value=''}else if(this.value.length>10){alert('Massimo dieci caratteri');this.value=this.value.substr(0,this.value.length-1)}"> <font color="red">*</font><span style="font-size:7pt">Max. 10 caratteri numerici, senza inserire spazi.</span> Sig. <input type="radio" name="titolo" value="Signor"> Sig.ra <input type="radio" name="titolo" value="Signora"> Cognome<input type="text" name="cognome" id="txt" onkeyup="if(this.value.length>0 && !this.value.match(/^[a-zA-Zèéàòìù ]+$/)){alert('Sono consentiti solo caratteri alfabetici (a-z A-Z).');this.value=''}else if(this.value.length>20){alert('Massimo venti caratteri');this.value=this.value.substr(0,this.value.length-1)}"> Nome<input type="text" name="nome" id="txt" onkeyup="if(this.value.length>0 && !this.value.match(/^[a-zA-Zèéàòìù ]+$/)){alert('Sono consentiti solo caratteri alfabetici (a-z A-Z).');this.value=''}else if(this.value.length>20){alert('Massimo venti caratteri');this.value=this.value.substr(0,this.value.length-1)}"> Comune di residenza<input type="text" name="citta" size="20" maxlength="20" id="txt" onkeyup="if(this.value.length>0 && !this.value.match(/^[a-zA-Zèéàòìù ]+$/)){alert('Sono consentiti solo caratteri alfabetici (a-z A-Z).');this.value=''}else if(this.value.length>20){alert('Massimo venti caratteri');this.value=this.value.substr(0,this.value.length-1)}"> CAP<input id="CAP" type="text" name="cap" size="4" maxlength="5" onkeyup="if(this.value.length>0 && !this.value.match(/^[0-9]+$/)){alert('Sono consentiti solo caratteri numerici (0-9)');this.value=''}else if(this.value.length>5){alert('Massimo cinque caratteri');this.value=this.value.substr(0,this.value.length-1)}"> Indirizzo <select name="via" style="color:#333333;"> <option value=""></option> <option value="Via" selected="selected">Via</option> <option value="Viale">Viale</option> <option value="Corso">Corso</option> </select> <input type="text" name="strada" size="30" maxlength="30" id="txt" onkeyup="if(this.value.length>0 && !this.value.match(/^[a-zA-Zèéàòìù ]+$/)){alert('Sono consentiti solo caratteri alfabetici (a-z A-Z).');this.value=''}else if(this.value.length>30){alert('Massimo trenta caratteri');this.value=this.value.substr(0,this.value.length-1)}"> n° <input type="text" name="num" size="2" maxlength="5"> </form> </body> </html>
e qui vengono le belle..... cioè se poi modifico la pagina che mi serve per registrare un utente nel mio sito, la funzione nei campi non funziona, cioè se provo a inserire un carattere accentato, questo non viene accettato....
qui un esempio
mi spieghi perchè?
Grazie
Non funziona perché probabilmente costruisci la pagina lato server con il php o con un CMS in quel caso le lettere accentate sono soggette al charset della pagina difatti (guardando il sorgente pagina) la regular-exp diventa cosi:
Ho apportato un altra modifica ora accetta anche gli spazi, se vuoi approfondire le regular-exp documentati qui.codice:<input id="txt" type="text" onkeyup="if(this.value.length>0 && !this.value.match(/^[a-zA-Z������]+$/)){alert('Sono consentiti solo caratteri alfabetici (a-z A-Z).');this.value=''}else if(this.value.length>20){alert('Massimo venti caratteri');this.value=this.value.substr(0,this.value.length-1)}" name="cognome">
![]()
Cavicchi Andrea
Problemi con javascript, jquery, ajax clicca qui
Forse non funziona perche sbagli a chiamare la funzione:Originariamente inviato da eccoinsorgo
ciao vindav, intedi questa riga:
codice:if ((event.keyCode > 32 && event.keyCode < 48 && event.keyCode != 39 && event.keyCode != 47) || (event.keyCode > 57 && event.keyCode < 65) || (event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode > 90 && event.keyCode < 97) || (event.keyCode==124))
e cambiarla così?
codice:if ((keyCode > 32 && keyCode < 48 && keyCode != 39 && keyCode != 47) || (keyCode > 57 && keyCode < 65) || (keyCode >= 48 && keyCode <= 57) || (keyCode > 90 && keyCode < 97) || (keyCode==124))
ho provato ma poi non funziona.....
vic53 nei post precedenti suggeriva questo errore,
si può vedere se modificando lì si risolve l'errore su firefox?
credo qui, nel pezzo evidenziato in blu....
codice:if ((event.keyCode > 32 && event.keyCode < 48 && event.keyCode != 39 && event.keyCode != 47) || (event.keyCode > 57 && event.keyCode < 65) || (event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode > 90 && event.keyCode < 97) || (event.keyCode==124))
<input type="text" onkeypress="return validatealphanumeric(event)">
come ho detto l'unica modifica da effettuare è sostituire event.keycode con keycode![]()