IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

comment supprimer les accents avec un onKeyPress


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Par défaut comment supprimer les accents avec un onKeyPress
    bonjour, je cherche à filtrer la saisie dans un input de type text.
    lorsque je saisi un caractère, s'il s'agit d'une lettre avec un accent, celle-ci est remplacée par son équivalent sans accent.
    je coince à mort, qui aurait une fonction semblable a celle que je cherche ?

    merci pour votre coup de main

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Par défaut
    pour le moment j'ai écris ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <script type="text/javascript">
    function no_accent(event)
    {
    	var valeurs_interdites = new Array(192, 193, 194, 195, 196, 197, 224, 225, 226, 227, 228, 229, 210, 211, 212, 213, 214, 216, 242, 243, 244, 245, 246, 248, 200, 201, 202, 203, 232, 233, 234, 235, 199, 231, 204, 205, 206, 207, 236, 237, 238, 239, 217, 218, 219, 220, 249, 250, 251, 252, 255, 209, 241);
    	var valeurs_de_remplacment = new Array(97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 101, 101, 101, 101, 101, 101, 101, 101, 99, 99, 105, 105, 105, 105, 105, 105, 105, 105, 117, 117, 117, 117, 117, 117, 117, 117, 121, 110, 110);
    	var nb = valeurs_de_remplacment.length;
    	var trouve = false;
    	var i = 0;
    	var nouvelle_valeur = "";
    	while((i < nb) && (!trouve))
    	{
    		if(event.charCode == valeurs_interdites[i])
    		{
    			trouve = true;
    		}
    		else
    		{
    			i++;
    		}
    	}
     
    	if(trouve)
    	{
    		nouvelle_valeur = valeurs_de_remplacment[i];
    	}
     
    	event.returnValue = true;
    }
    </script>
    maintenant j'aimerais retourner la "nouvelle_valeur", dans les cas où ce serait une lettre accentuée.

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Par défaut
    je bloque carément :s
    aucune de mes recherches sur google ne m'a aidé >_<
    j'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    event.CharCode = nouvelle_valeur;
    ça semble ne pas marcher :s

  4. #4
    Membre habitué
    Femme Profil pro
    Inscrit en
    Mars 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2010
    Messages : 15
    Par défaut
    Bonjour,

    J'ai repris ta fonction et l'ai un peu modifiée, normalement ça marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    function no_accent(event)
    {
    	var valeurs_interdites = new Array(192, 193, 194, 195, 196, 197, 224, 225, 226, 227, 228, 229, 210, 211, 212, 213, 214, 216, 242, 243, 244, 245, 246, 248, 200, 201, 202, 203, 232, 233, 234, 235, 199, 231, 204, 205, 206, 207, 236, 237, 238, 239, 217, 218, 219, 220, 249, 250, 251, 252, 255, 209, 241);
    	var valeurs_de_remplacment = new Array(97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 101, 101, 101, 101, 101, 101, 101, 101, 99, 99, 105, 105, 105, 105, 105, 105, 105, 105, 117, 117, 117, 117, 117, 117, 117, 117, 121, 110, 110);
    	var nb = valeurs_de_remplacment.length;
    	var nouveau_mot = "";
    	var trouve = false;
    	for(var j=0; j<event.length; j++){
    		for(var i =0; i<nb ; i++) 
    		{
    			if(valeurs_interdites[i] == event.charCodeAt(j))
    			{
    				nouveau_mot += String.fromCharCode(valeurs_de_remplacment[i]);
    				trouve = true;
    			}
    		}
     
    		if(!trouve) {
    			nouveau_mot += event.charAt(j);
    		}
     
    		trouve = false;
    	}
     
    	//event.returnValue = true;
    	return nouveau_mot;
    }

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Par défaut
    merci mais non.
    je dois vraiment retourner la valeur !
    un script d'autocomplete jquery s'execute après ca, donc je ne peux pas modifier le mot en lui meme, mais modifier la lettre saisi. enfin je m'explique mal mais je pense que tu auras compris.
    je dois réussir avec ma méthode, mais je n'arrive pas à la finir :s

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Par défaut
    va savoir pourquoi ça fonctionne quand meme en remplaçant la valeur ...
    je repars sur ton idée, merci

Discussions similaires

  1. [AC-2003] Comment supprimer les espaces avec mid, left, right
    Par edonis dans le forum VBA Access
    Réponses: 3
    Dernier message: 09/10/2011, 19h05
  2. Supprimer les accents avec Linq
    Par gazier20 dans le forum Linq
    Réponses: 8
    Dernier message: 02/12/2009, 17h43
  3. Réponses: 6
    Dernier message: 12/02/2008, 20h02
  4. [String] Comment supprimer les accents
    Par iuz dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 08/03/2004, 02h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo