Visualizzazione risultati 1 fino 8 di 8

Discussione: consentire solo inserimento di alcuni caratteri

  1. #1
    Guest

    Unhappy consentire solo inserimento di alcuni caratteri

    salve a tutti vi prego ci sarebbe qualche esperto di javascript che potrebbe darmi una mano, impratica non riesco a trovare un sistema non consentire immisione di carratteri dentro una textarea in javascript, vorrei escludere i seguenti caratteri ess: "/*-+@#][]?^=)((/&%$$"!" dalla text che elenco qui sotto
    Codice PHP:
    <span style="font-size: 15px"></span><strong><span style="background-color: #ffd700"><input maxlength="16" name="cartella" type="text" /></span></strong><span style="font-size: 15px"></span></p

  2. #2
    Guest

    Predefinito

    Se vuoi fare il controllo quando il form viene inviato, allora la funzione che fa per te indexOf. Ovviamente devi usarla per ogni carattere che vuoi escludere. --> Se c' questo carattere allora fai questo.

    Se invece vuoi che proprio fisicamente non sia possibile inserire quei caratteri nella textarea (cio come se si disattivassero quei tasti) allora, premesso che non condivido questa cosa, devi fare cos:

    Al caricamento della pagina inizializzare una variabile (es. contTextArea=""). Deve essere globale quindi non usare "var". Poi devi legare una funzione all'evento onkeydown relativo alla textarea. Questa funzione deve estrapolare il contenuto della textarea, vedere se pi lungo di quello contenuto della variabile contTextArea (usa .length). Se s allora prendi l'ultima lettera (ogni stringa in se un array di lettere, quindi se per esempio il contenuto della textarea nella variabile myTextArea, l'ultima lettera la ottieni facendo myTextArea[myTextArea.length]) e verifichi se una di quelle da vietare. Se una di quelle sostituisci il contenuto della textarea con quello nella variabile contTextArea, altrimenti aggiorni la variabile contTextArea con il nuovo contenuto e lasci stare la textarea. Il risultato finale che quando per esempio si inserisce @ questo non viene inserito (o comunque viene eliminato in una frazione di secondo). A questo punto per ti dico che cos non molto carino, quindi io aggiungerei un alert che avverte del fatto che il carattere inserito non valido, altrimenti uno pensa che la tastiera non vada...

    Ciao

  3. #3
    Guest

    Predefinito

    cioe io cerco semplicemente di far si che dentro la textarea non sia possibile inserire caratteri tipo /**-/++++ ecc.. ma solo caratteri minuscoli e numeri ce una funzione tipo pattern="[a-z]" per html ma una cosa simile per javascript controllato questo comando contTextArea="" nel manuale javascript non e stao mai inventato nai ideatori di javascript :-)
    Ultima modifica di webskey : 13-04-2012 alle ore 14.28.10

  4. #4
    L'avatar di EuroSalute
    EuroSalute non  connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    946

    Predefinito

    per impedire caratteri nell'input, devi usare jquery ...

    dai un id all'input:
    Codice HTML:
    <input maxlength="16" name="cartella" type="text" id="cartella"/>
    questo script jquery permette solo inserimento di numeri, per input numerico, pi i tasti specificati:
    Codice HTML:
    <script type="text/javascript">
          $(document).ready(function() {
    
            (function() {
                var editingKeys = {
                   '8'  : 'backspace',
                   '46' : 'canc',
                   '37' : 'leftarrow',
                   '39' : 'rightarrow'
                };
    						
    						
    	    $('#cartella').bind('keydown', function(e) {
                    var key = String.fromCharCode(e.keyCode);
                    if (isNaN(key)) return (e.keyCode in editingKeys);
                });					
    						
    						
            })();
    
          });
    puoi trovare i codici dei tasti qui:
    http://www.cambiaresearch.com/articl...odes-key-codes

    ora si tratta di modificare lo script per le tue esigenze...


    edito qui per testare questo codice, provalo:

    Codice HTML:
    $(document).keydown(function(e){
    				   e.preventDefault();
    					 
    					 var editingKeys = {
                   '16':'shift',
    							 '17':'ctrl',
    							 '18':'alt',							 
    							 '192':'grave accent',
    							 '222':'single quote',
    							 '191':'forward slash',
    							 '186':'',
    							 '187':'',
    							 '188':'comma',
    							 '190':'period',
    							 '109':'subtract',							 
    							 '220':'back slash',
    							 '219':'open bracket',
    							 '221':'close braket',
    							 '226':'',
                };
    					 
    					 var key = String.fromCharCode(e.keyCode);
    					 //if (isNaN(key) & (e.keyCode in editingKeys))
    					 if (e.keyCode in editingKeys)
    					    alert('Tasto Non Accettato! --> '+e.keyCode+' = '+key);
    					 else alert('Tasto Accettato! --> '+e.keyCode+' = '+key);
    					 
    					 $('#cartella').val(key);
    							
    							});
    				
    Ultima modifica di EuroSalute : 14-04-2012 alle ore 23.56.32 Motivo: prova codice...
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  5. #5
    Guest

    Predefinito

    ottimo sei sempre il migliore eurosalute :-)

  6. #6
    L'avatar di dreadnaut
    dreadnaut non  connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    5,950

    Predefinito

    A naso questo sistema non ti protegge da qualcuno che fa copia e incolla dei caratteri, o mi sbaglio?

    edit: io farei cos, che mi sembra pi semplice, pi affidabile, e circa 30KB pi leggero dell'usare jQuery.

    Codice HTML:
    <script type="text/javascript">
      // abcd  l'insieme dei caratteri da eliminare, occhio nel caso siano caratteri speciali per le espressioni regolari.
      function pulisci(campo) { campo.value=campo.value.replace(/[abcd]/g,''); }
    </script>
    
    <textarea onchange="pulisci(this)" onkeyup="pulisci(this)"></textarea>


    Citazione Originalmente inviato da EuroSalute Visualizza messaggio
    per impedire caratteri nell'input, devi usare jquery ...
    Puoi, non devi. jQuery di certo il metodo pi voluminoso, e se non lo usi gi per qualche altra dozzina di motivi, probabilmente puoi farne a meno.
    Ultima modifica di dreadnaut : 03-05-2012 alle ore 21.20.20
    chezDreadnaut
    "Un <BR/> impuro, punto."
    "I <P>&nbsp;</P> non hanno diritto di esistere."

  7. #7
    L'avatar di EuroSalute
    EuroSalute non  connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    946

    Predefinito

    webskey aveva chiesto un metodo per non far digitare eventuali caratteri nell'input, ovvio che lo stesso input deve essere validato con una opportuna regexp....

    ed quello che abbiamo fatto.
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  8. #8
    L'avatar di dreadnaut
    dreadnaut non  connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    5,950

    Predefinito

    Beh, si parlava di immissione, non di digitazione, quindi mi sono permesso di pignoleggiare

    Decisamente va validato anche lato server, perch di quello che ti inviano gli utenti non ci si pu mai fidare.
    chezDreadnaut
    "Un <BR/> impuro, punto."
    "I <P>&nbsp;</P> non hanno diritto di esistere."

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •