Interdiction caractère problème conflit

danwolf7 Messages postés 58 Statut Membre -  
danwolf7 Messages postés 58 Statut Membre -
Bonjour,

J'ai trouvé un code pour interdire l'écriture de caractères spéciaux dans un formulaire.

<script>
function valid_char(evt) {
	var keyCode = evt.which ? evt.which : evt.keyCode;
	if (keyCode==9 || keyCode==37 || keyCode==38 || keyCode==39 || keyCode==40) return true;
	var interdit = 'àâäãçéèêëìîïòôöõùûüñ &*?!:;,\t#~"^¨%$£?²¤§%*()[]{}<>|\\/'\'';
	
	if (interdit.indexOf(String.fromCharCode(keyCode)) >= 0) {
		document.getElementById('char_alert').innerHTML="Seuls les caractères alphanumériques, points simples, traits d'union et underscores sont acceptés.";
		return false;
	} else {
		document.getElementById('char_alert').innerHTML="";
	}
}
</script>


Le problème est que la touche avec le keyCode 39 (flèche directionnelle) et la touche ['] ont le même code et donc il ne m'interdit plus l'écriture d'une ['].

Comment faire pour que je puisse continuer à utiliser mes flèches directionnelles en interdisant en même temps la touche ['] ?

Merci d'avance !

A voir également:

2 réponses

ljm972 Messages postés 255 Date d'inscription   Statut Membre Dernière intervention   29
 
Bonjour,
Pourquoi tu ne testerais pas les données avant l'envoit au serveur :

<input type="submit" name="Valider" onsubmit="Verifier()"/>

Si tu as des caractères spéciaux, alors tu bloques l'envoi et tu informes l'utilisateur.

c'est une possibilité.
0
danwolf7 Messages postés 58 Statut Membre 5
 
Tout d'abord merci pour ta réponse.
Effectivement c'est une bonne idée et je pense même l'utiliser.
Néanmoins je souhaiterai savoir comment faire avec ma technique.
Elle est intéressante car elle envoit un message lors de la frappe.
0
danwolf7 Messages postés 58 Statut Membre 5
 
Pour ceux que ça intéresse, je mets à disposition le scripte que j'ai fait pour bloquer l'envoie si un caractère interdit venait à se glisser dans votre formulaire :
<script>
function check_valid(){
var val_interdites = /'|"|\\/;
var alert_str = "Message d'erreur...";
if(document.NOM_DU_FORM.NOM_DE_L_INPUT.value.search(val_interdites) >= 0){
document.getElementById('alert_invalid').innerHTML=alert_str;
return false; }
else { return true; }
}
</script>
<p id="alert_invalid"></p>
0