Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    non far digitare virgolette in un form

    vorrei fare in modo che un utente che visita il mio sito non riesca a digitare le virgolette e gli apostrofi in un form ma non conosco la programmazione javascript. Come faccio?

  2. #2
    Utente di HTML.it L'avatar di echoweb
    Registrato dal
    Sep 2008
    Messaggi
    419
    ecco uno script che fa al caso tuo

    codice:
    <script type="text/javascript">
    function controllo_campo_num(campo,tipo)
    {
    	var lunghezza = campo.value.length;
    	var str = campo.value;
    	var strfinal="";
     	var i=0;
     	for( i=0 ; i < lunghezza ; i++ )
     	{
     		var codascii=str.charCodeAt(i);
    	 	
    		if ( codascii == 96 || // `
    			 codascii == 39 || // ' 
    			 codascii == 34    // "
    		) 
    	 	{
    	  		strfinal = strfinal;
    	 	}
    	 	else
    	 	{
    	  		strfinal = strfinal + String.fromCharCode(codascii);
    	 	}
    	}
    	campo.value = strfinal;
    	return true;
    }
    </script>
    
    
    <input id="numero" onkeyup="return(controllo_campo_num(this,this.name))" name="numero" type="text"/>


    "Non soffocare la tua ispirazione e la tua immaginazione,
    non diventare lo schiavo del tuo modello"

    Vincent van Gogh

  3. #3
    Oppure, senza ricorrere a funzioni esterne:

    codice:
    <textarea onKeyUp="this.value=this.value.replace(/& #34;/g,'').replace(/\'/g,'');"></textarea>
    (Togli lo spazio tra la & ed il #, ho dovuto aggiungerlo altrimenti il Forum visualizza i doppi apici ")

  4. #4
    Oppure una versione più contorta:
    JS
    codice:
    document.form.txt.onkeyup=function()
      {
        var ultimoChar=this.value.substring(this.value.length-1);
       
      if (ultimoChar == "\'" || ultimoChar == "\"") //se non ti visualizza la prima condizione, è sbarra ' 
        this.value=this.value.substring(0,this.value.length-1);
        
        
        
      };
    HTML ESEMPIO
    codice:
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset=utf-8 />
    <title>JS Bin</title>
    </head>
    <body>
      <form name="form">
        <input type="text" name="txt">
      </form>
    </body>
    </html>
    Funge, ma aggiungerei anche un for finale all'invio del form che elimina tutti le virgolette.

  5. #5
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Se vuoi proprio fisicamente impedirglielo durante la digitazione devi fare così:

    codice:
    <!doctype html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Niente virgolette</title>
    <script type="text/javascript">
    	function noVirgolette (oKeyEvent) {
    		return oKeyEvent.charCode === 0 || /[^"']/.test(String.fromCharCode(oKeyEvent.charCode));
    	}
    </script>
    </head>
     
    <body>
    <form name="myForm">
    
    
    Digita del testo qua: <input type="text" name="myInput" onkeypress="return noVirgolette(event);" onpaste="return false;" /></p>
    </form>
    </body>
    </html>
    oppure, senza funzioni esterne, così:

    codice:
    <form name="myForm">
    
    
    Digita del testo qua: <input type="text" name="myInput" onkeypress="return event.charCode===0||/[^\u0022']/.test(String.fromCharCode(event.charCode));" onpaste="return false;" /></p>
    </form>
    Tutto ciò che fai con jQuery puoi farlo meglio e con la metà del codice in puro JavaScript.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.