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 :

Transformer les caractères automatiquement d'un champ de formulaire


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Janvier 2005
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 7
    Par défaut Transformer les caractères automatiquement d'un champ de formulaire
    Bonjour,

    J'ai repris un script qui me permet de remplacer les espaces par des tirets dans un champs de formulaire. cf code ci-dessous. Ce champs est très pratique car je l'utiliser pour rewriter mes URL.
    J'aimerais également pouvoir remplacer les caractères à accents par des caractères sans accent qu'un é,è soit remplacer par automatiquement par un e. Avez vous une idée de comment je pourrais compléter ce code ?



    <input type="text" name="v1" id="v1" onKeyPress="
    if (event.keyCode==39 && event.keyCode==44)|| event.keyCode==32) event.returnValue = false;
    if (event.which==39 && event.keyCode==44|| event.which==32) size="120">


    Merci d'avance !
    ++

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    perso je le ferais sur le onkeyup avec un replace sur une regExp ...
    c'est plus clair ...

    en m'inspirant d'un code déja proposé sur le forum:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <script type="text/javascript">
    chaine="à ä a"
    myarray={'à':'a','ä':'a',' ':'-'};
     
     
    function foo(){
     return chaine.replace(/./g, function($0){return (myarray[$0])?myarray[$0]:$0 })
    }
    alert(foo(chaine))
    </script>
    a toi de compléter l'array des remplacements ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2005
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 7
    Par défaut
    Merci pour cette info. Mais cela va modifier dans tous les champs de la page ? ou uniquement su mon champ intitulé V1 ?

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    appelle la fonction su le onkeyup et onmouseup des champs souhaités comme ceci:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onkeyup='this.value=foo(this.value)' onmouseup='this.onkeyup()'
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre du Club
    Inscrit en
    Janvier 2005
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 7
    Par défaut
    Bonjour,

    Je viens d'insérer ton script.
    Mais cela n'a pas l'air de fonctionner : lorsque j'ouvre ma page j'ai une boite de dialogue qui s'affiche dans laquelle est inscrite "a-a-a". Je clic sur OK

    Lors que je rempli mon formulaire, dans le champ qui devrait transformer les caractères, le texte entré est instantanément remplacé par "a-a-a"


    Sais tu d'où cela pourrais provenir ?
    Merci d'avance.

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    c'était un exemple
    il faut bien entendu modifier les paramètres de la fonction et son return ...

    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
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
     
    <title>Nouvelle page 1</title>
    <script type="text/javascript">
    // chaine="à ä a"   <= ligne inutile à supprimer ;-)
    myarray={'à':'a','ä':'a',' ':'-'};
     function foo(val){
     return val.replace(/./g, function($0){return (myarray[$0])?myarray[$0]:$0 })
    }
    </script>
    </head>
    <body>
    <input type='text' onkeyup='this.value=foo(this.value)' onmouseup='this.onkeyup()' value='' />
    </body>
    </html>
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre du Club
    Inscrit en
    Janvier 2005
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 7
    Par défaut
    Merci.
    Ca fonctionne niquel !

    Par contre comment faire pour remplacer une apostrophe ' ?

    Merci !!!

  8. #8
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Pour compléter l'excellente solution de SF, tu peux maintenant :

    - compléter la liste des remplacements, en conservant la syntaxe 'clef':'valeur' :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    myarray={'à':'a','ä':'a',' ':'-','autre caractère à remplacer':'nouveau caractère'};

    ...ce qui donne pour pour une apostrophe (suite à ta question) :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    myarray={'\'':'autre chose'};

    - et retirer la ligne
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    chaine="à ä a"
    qui a été oubliée là par inadvertance...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 19/07/2014, 13h50
  2. Réponses: 1
    Dernier message: 23/03/2012, 09h57
  3. Réponses: 2
    Dernier message: 31/08/2011, 14h49
  4. transformer les caractères spéciaux chinois
    Par antxbe dans le forum Langage
    Réponses: 1
    Dernier message: 19/11/2008, 12h17
  5. Réponses: 1
    Dernier message: 26/09/2007, 19h38

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