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?
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?
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
Oppure, senza ricorrere a funzioni esterne:
(Togli lo spazio tra la & ed il #, ho dovuto aggiungerlo altrimenti il Forum visualizza i doppi apici ")codice:<textarea onKeyUp="this.value=this.value.replace(/& #34;/g,'').replace(/\'/g,'');"></textarea>
Oppure una versione più contorta:
JS
HTML ESEMPIOcodice: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); };
Funge, ma aggiungerei anche un for finale all'invio del form che elimina tutti le virgolette.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>
Se vuoi proprio fisicamente impedirglielo durante la digitazione devi fare così:
oppure, senza funzioni esterne, 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>
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.