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 :

altGr qui active le onBlur


Sujet :

JavaScript

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut altGr qui active le onBlur
    Bonjour,

    j'ai un champs email, je vérifie si le nombre de caractère soit suffisant

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input onBlur="vldEmail(this)" type="texte" name="email" size="10" value="<?php echo $this->email ?>" placeholder="email">

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function vldEmail(inpt)
    {
        email = inpt.value;//la valeur de l'email saisie
    //vérifie le nombre de caractère
    alert(email);
    }
    Mon souci c'est que dès qu'on appuie sur la touche Alt Gr pour générer le @,
    la fonction déclenche le onBlur, or il ne faudrait pas.

    Comment contourner ce problème ?

    merci d'avance de votre réponse

  2. #2
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Salut,

    Je récupérerais le code ASCII du ALT GR, et si c'est ce code qui est intercepté, j'annulerai en faisant un return false ou quelque chose dans le genre pour annuler le onblur.

    C'est une piste.

    bee

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    Merci beaucoup c'est une bonne piste mais comme je suis un lapin de 1 semaine en
    javascript,

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input id="email_go" onBlur="vldEmail(this)" type="texte" name="email" size="10" value="<?php echo $this->email ?>" placeholder="email">f_saisie_connexion.php">

    je doit le mettre ou mon bout de code qui déclenche cette interception ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onBlur="vldEmail(this)"  onKeyup"appelle fonction"
    ou si je pouvais faire un truc ce ce genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onBlur="if(!quelquechose = "touche ascii"){vldEmail(this))}"

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Je ne constate pas ce comportement...
    Il y a fort à parier que le problème vient d'ailleurs car il n'y a aucune raison que ça fasse cela.

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 124
    Points : 44 922
    Points
    44 922
    Par défaut
    Bonjour,
    j'ajouterais qu'utiliser comme nom de variable, qui plus est sans le mot clé var, le même qu'un name de champs peut s'avérer périlleux avec certains navigateurs.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function vldEmail(inpt){
        var sTmp = inpt.value;//la valeur de l'email saisie
       //vérifie le nombre de caractère
       alert( sTmp);
    }

  6. #6
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    pouvez-vous essayer ce script

    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
     
    <input id="email_go" type="texte" placeholder="email" value="" size="10" name="email" onblur="vldEmail(this)">
     
    <script type="text/javascript">
    function vldEmail(inpt) //valider un email
    {
        var email = inpt.value;//la valeur de l'email saisie
        if(!/^[a-z0-9._-]+@[a-z09._-]+$/.test(email)){
                setTimeout(function(){
                    alert('votre email est invalide');
                    document.getElementById('email_go').focus();
                },0);
        }
    }
     
    </script>
    si je cliquer sur le champ et je clique sur AltGr, j'ai tout de suite le message email est invalide

  7. #7
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Ce script fonctionne correctement (aucun problème avec la touche AltGr) sur Chrome, Firefox et IE 10.

    Idées : Navigateur ou clavier exotique ? Mauvaise configuration du clavier ?

  8. #8
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 124
    Points : 44 922
    Points
    44 922
    Par défaut
    si je cliquer sur le champ et je clique sur AltGr,
    que ce cache t-il derrière cela ?

  9. #9
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    Grrrr,

    je n'avais pas windows sous la main, ça fonctionne,
    je suis sous ubuntu, la touche Alt Gr sort bien du focus,
    j'ai même essayer de le faire avec

    sous mon portable,

    c'est dommage

Discussions similaires

  1. Liste déroulante qui active/désactive champs
    Par jimmo dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 05/08/2014, 23h25
  2. Script qui active/desactive le Proxy d'IE
    Par heryIT dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 15/12/2013, 19h19
  3. checkbox qui active un hover actif
    Par pito2901 dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 25/08/2013, 15h42
  4. Scroll bar qui active des lien lorsqu'on l'utilise
    Par pierrax dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/02/2008, 19h35

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