Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    solo caratteri alfanumerici su textare

    Salve a tutti...
    come faccio a limitare la gamma di caratteri possibili da inserire in una textarea?
    mi spiego: vorrei fare in modo tramite js di non permettere di inserire in una textarea caratteri non alfanumerici; non con espressioni regolari, perchè il controllo vorrei farlo tramite onKeyDown ; il risultato dovrebbe essere come quando si cerca di rinominare un file con un nome tipo '%ci\\/*9'

  2. #2
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Cos'hai contro le espressioni regolari?? Perché non andrebbe bene il seguente esempio che fa uso di espressioni regolari (in rosso)?

    codice:
    <!doctype html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Textarea solo caratteri alfanumerici</title>
    <script type="text/javascript">
    function normalOnly(oToCheckField, oKeyEvent) {
    	var nChar = (oKeyEvent || /* IE */ window.event || { charCode: 0 }).charCode;
    	return nChar === 0 || /[\w\s]/.test(String.fromCharCode(nChar));
    }
    </script>
    </head>
    
    <body>
    <form name="myForm">
    
    
    Inserire solo caratteri alfanumerici:
    
    <textarea cols="50" rows="10" name="myInput" onkeypress="return(normalOnly(this, event));" onpaste="return(false);" />Lorem ipsum</textarea></p>
    </form>
    </body>
    </html>
    Le espressioni regolari sono state inventate apposta!!!!

    Ovviamente se non vuoi ammettere neanche gli spazi devi sostituire:

    codice:
    /[\w\s]/
    con:

    codice:
    /\w/
    P.S. Se vuoi un controllo più rigoroso devi usare questa:

    codice:
    /[a-z0-9\s]/i
    &hellip;altrimenti con \w verrà ammesso anche il trattino basso.


  3. #3
    grazie
    non so davvero come ringraziarti adesso provo e poi ti so dire

  4. #4
    funziona tutto .. tranne che:
    con Opera, non mi fa inserire proprio nessun carattere in parole povere ritorna sempre false; mi potete aiutare, non capisco
    ecco il mio codice (che è praticamente uguale a quello suggeritomi da carlo marx)
    codice:
    function normalOnly(mode, oToCheckField, oKeyEvent) {
    	if(mode=='normal'){
    	var nChar = (oKeyEvent || /* IE */ window.event || { charCode: 0 }).charCode;
    	return nChar === 0 || /[a-z0-9\s]/i.test(String.fromCharCode(nChar));
    	}else if(mode=='number')
    	{
    		var nChar = (oKeyEvent || /* IE */ window.event || { charCode: 0 }).charCode;
    		return nChar === 0 || /^\d+$/i.test(String.fromCharCode(nChar));
    	}
    }
    e questa è il tag HTML a cui è associata la funzione
    codice:
    <input type="text" id="textgentel" onpaste="return(false)" onkeypress="return(normalOnly(\'number\', this, event));" value="'+tel+'">
    grazie

  5. #5
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Intanto cerchiamo di dare un po' di ordine al codice&hellip;

    codice:
    <!doctype html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Esempio</title>
    <script type="text/javascript">
    function normalOnly(oToCheckField, oKeyEvent, sMode) {
    	var nChar = (oKeyEvent || /* IE */ window.event || { charCode: 0 }).charCode, rFilter;
    	switch (sMode) {
    		case "normal": rFilter = /[a-z0-9\s]/i; break;
    		case "number": rFilter = /\d/; break;
    		default: return true; // questa riga puoi anche eliminarla se proprio non ti serve
    	}
    	// alert("Il codice del carattere \u00E8: " + nChar + ". Il carattere digitato \u00E8: \"" + String.fromCharCode(nChar) + "\".");
    	return nChar === 0 || rFilter.test(String.fromCharCode(nChar));
    }
    </script>
    </head>
    
    <body>
    <form name="myForm">
    
    
    <input type="text" id="textgentel" onpaste="return false;" onkeypress="return normalOnly(this,event,'number');" value=""></p>
    </form>
    </body>
    </html>
    Provalo con Opera togliendo il commento a quell'alert (in rosso) e dicci che cosa ottieni.

  6. #6
    ecco che cosa ottengo esattamente:

    <localhost>

    Il codice del carattere è: undefined. Il carattere digitato è: "

    secondo me non riconosce l'evento...

    il carattere che ho digitato era 'a'

  7. #7
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Originariamente inviato da alessadrop58
    secondo me non riconosce l'evento...
    Infatti è così. Ma io non ti posso aiutare, non conosco Opera. Prova a cercare un po' in rete.

  8. #8
    grazie comunque carlomarx sei sempre gentile

  9. #9
    ehi ho cercato 1 po' e ho capito che è proprio onkeypress (e solo quello) che disturba il funzionamento con opera per cui chiedo:

    è possibile associare la funzione sopra usata al su onkeydown piuttosto che su onkeypress??

  10. #10
    ho trovato una risposta
    su opera bisogna usare un codice simile
    codice:
    function SoloCifre(e){
    var gfC_code=navigator.appName.indexOf("Netscape")!=-1&&navigator.appVersion.indexOf("4.")==0?e.which:navigator.userAgent.toLowerCase().indexOf("gecko")!=-1?e.charCode:e.keyCode;
    if(gfC_code<48||gfC_code>57){
    	return false
    }else
    {
    	return true
    }

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.