Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 33
  1. #1

    accettare solo caratteri alfanumerici

    Buongiorno a tutti, sto usando un piccolo script per consentire l'inserimento in un campo di testo solo di caratteri alfabetici.. es. a b c d ecc.

    codice:
    //Function to allow only alpha numeric to textbox // funzione per consentire solo caratteri nei campi   
    
    function validatealphanumeric(key) { 
    var keycode = (key.which) ? key.which : key.keyCode 
    var phn = document.getElementById('txtChar');   
    
    //comparing pressed keycodes // compara i keycodes dei tasti  
    
    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)) 
    {   
    alert("Sono consentiti solo caratteri alfabetici (a-z A-Z).");  
    return false; } 
    else 
    { return true; 
    } 
    }
    e poi richiamo lo script nell'html così:

    codice:
    <input type="text" name="cognome" id="txtChar" onkeypress="return validatealphanumeric (event)">
    solo che facendo delle prove non accade nulla, nessun alert, e vengono inseriti anche i numeri nel campo, dov'è l'errore?
    Uso anche uno script simile che consente di inserire solo numeri e funziona bene......

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,132
    Prova cosi:
    codice:
    <input type="text" name="cognome" id="txtChar" onkeyup="if(!this.value.match(/[0-9a-zA-Z/])){alert('usare solo numeri e lettere')}">
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    grazie per la risposta, ma.....non funge. Ho provato a sostituire totalmente il mio campo input con quello che mi hai suggerito, ma niente. Ovviamente dovevo lasciare invariato il mio script, vero?

    E poi, per controllare ad es. un campo nel quale accetto solo numeri, io faccio così:
    codice:
    //http://www.aspdotnet-suresh.com/2010/12/how-to-restrict-user-to-enter-only.html  
    
    function validateTEL(evt) { 
    var keycode = (evt.which) ? evt.which : event.keyCode  
    var phn = document.getElementById('TEL');  
    
    //comparing pressed keycodes  
    
    if ((keycode < 48 || keycode > 57))  
    { 	
    alert("Sono ammessi solo caratteri numerici (0-9).\nAttenzione a non inserirne piu' di dieci."); 
    return false;  
    }  
    
    else 
    {  
    //Condition to check textbox contains ten numbers or not  
    
    if (phn.value.length < 10) 
    {  
    return true;  
    }  
    else 
    {   
    alert("Max. 10 caratteri numerici, senza inserire spazi."); return false;  
    } 
    } 
    }
    Questo funziona, perchè l'altro per le lettere no?

    Credo non dipenda dal fatto che lo script è richiamato nell'HEAD della pagina, perchè altrimenti non funzionerebbero entrambi, o no?
    Dammi o datemi una mano, please

  4. #4

    Aggiornamento....

    scusate,ma.....perchè se testo la pagina con firefox non funziona, mentre se provo con chrome o IE9 invece tutto va bene?

  5. #5
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    codice:
    <!doctype html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Example</title>
    <script type="text/javascript">
    function checkInput(oToCheckField, oKeyEvent) {
    	return oKeyEvent.charCode === 0 || /[a-zA-Z]/.test(String.fromCharCode(oKeyEvent.charCode));
    }
    </script>
    </head>
    
    <body>
    <form name="myForm">
    
    
    Type here: <input type="text" name="myInput" onkeypress="return(checkInput(this, event));" onpaste="return(false);" /></p>
    </form>
    </body>
    </html>

  6. #6

    OK grazie

    ... in effetti funziona con tutti e 3 i principali browser (IE, FF, CHrome), ma sapresti aiutarmi nel risolvere il problema che ho esposto?

    I due script funzionano bene con Crhome e IE9, con Firefox v. 9.01, lo script che impedisce l'inserimento di lettere (e relativo alert) funziona, quello che impedisce l'inserimento di numeri invece no.....

  7. #7
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    591

    Re: accettare solo caratteri alfanumerici

    La condizione che stai usando mettendo piu "not =" insieme è l'errore che cerchi...
    != per intenderci...
    metti le parentesi a ogni singola condizione...per debug fai degli alert semplici...
    io in uno script che fa uso di numerici uso questo
    ma TU PUOI SOSTITUIRE i valori delle lettere e costruire un altro script fatto apposta per i car. alfabetici minuscoli maiuiscoli
    questa è la mia routine per i numeri...
    function getkeyN(e) {
    var x; // solo numerico attenzione sostituisce punto con la virgola per operazioni numeriche
    if (window.event) {
    x = window.event.keyCode;
    if (x == 46) { window.event.keyCode = 44 }
    if (((x > 41) && (x < 58)) || (x == 13))
    {
    return true;
    }
    else
    alert("Consentiti solo car. numerici...");
    window.event.keyCode = null;
    return null;
    }
    }
    Siccome i caratteri iniziano da CHR 65 fino a 90 maiuscoli
    potresti provare
    function getkeyC(e) {
    var x; // solo alfabetico
    if (window.event) {
    x = window.event.keyCode;
    if (((x > 65) && (x < 90)) || (x == 13))
    {
    return true;
    }
    else
    alert("Consentiti solo car. albabetici...");
    window.event.keyCode = null;
    return null;
    }
    }

    ciao
    Vic53





    Originariamente inviato da eccoinsorgo
    Buongiorno a tutti, sto usando un piccolo script per consentire l'inserimento in un campo di testo solo di caratteri alfabetici.. es. a b c d ecc.

    codice:
    //Function to allow only alpha numeric to textbox // funzione per consentire solo caratteri nei campi   
    
    function validatealphanumeric(key) { 
    var keycode = (key.which) ? key.which : key.keyCode 
    var phn = document.getElementById('txtChar');   
    
    //comparing pressed keycodes // compara i keycodes dei tasti  
    
    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)) 
    {   
    alert("Sono consentiti solo caratteri alfabetici (a-z A-Z).");  
    return false; } 
    else 
    { return true; 
    } 
    }
    e poi richiamo lo script nell'html così:

    codice:
    <input type="text" name="cognome" id="txtChar" onkeypress="return validatealphanumeric (event)">
    solo che facendo delle prove non accade nulla, nessun alert, e vengono inseriti anche i numeri nel campo, dov'è l'errore?
    Uso anche uno script simile che consente di inserire solo numeri e funziona bene......
    Vic53

  8. #8
    ho capito il motivo dell'errore e quindi la riga da modificare


    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))


    ma poi, giacchè sono una vera pippa di javascript e di tutti i linguaggi di programmazione, mi fai vedere come modificare?
    Io avevo pensato così.....

    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' corretto 'sintatticamente'?

  9. #9
    Ho provato a testare, ma adesso non funziona più ne su IE ne su Chrome..... sicuro che ho sbagliato a modificare.....

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    Per l'inserimento di numeri:

    codice:
    function checkInput(oToCheckField, oKeyEvent) {
    	charCode = oKeyEvent.charCode ? oKeyEvent.charCode : oKeyEvent.keyCode;
    	return charCode === 0 || /[0-9]/.test(String.fromCharCode(charCode));
    }
    per le lettere mi sembra di aver capito che va bene lo script di carlo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.