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 :

Onblur() sur Safari


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 6
    Par défaut Onblur() sur Safari
    Bonjour à tous et toutes,

    Voilà j'ai un problème étonnant avec mon code JavaScript.

    Dans un formulaire HTML sur un champ input. J'ai fait une petite fonction qui vérifie la non présence de certains caractères.

    Cette fonction est appelée sur le onblur() du champ, et redonne le focus que si il y a des caractères interdits.

    La vérification fonctionne bien sauf que sur Safari sur Mac (et seulement sur Mac), la fonction boucle à l'infini.

    Auriez-vous une solution pour corriger le problème svp ?

    le code HTML :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input class="input_left" size="20" maxlength="12" id="Ref_Interne" name="Ref_Interne"
    value="#D#S_REF_INTERNE_VUI#F#" style="background-color:white;" 
    onblur="javascript: if(!checkText(this)){alert(msgErrCarLibCote);LancePage='NOK';}">

    Le code JavaScript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function checkText(champ_input)
    {	
    	/* Expression reguliere des caractères valides */
    	var white_liste = /^[a-zA-Z0-9/?:().,'+ -]*$/;
    	if (white_liste.test(champ_input.value))
      	{
       		return true;
      	}
     	else
     	{
     		champ_input.focus();
     		return false;
     	}
    }
    Merci d'avance pour toute réponse.

    Bonne journée à tous et toutes.

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Bonjour,
    regarde de près ce qui se passe dans ton enchainement
    - saisie
    - on quitte le champ => onblur
    - vérification
      - SI pas bon ALORS focus sur INPUT et return false
    - SI false ALORS alert( message) => on requitte le champ => onblur et retour à vérification après l'alerte
    Il eut mieux valu faire la gestion complète dans la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function checkText(champ_input) {
      /* Expression reguliere des caractères valides */
      var white_liste = /^[a-zA-Z0-9/?:().,'+ -]*$/;
      if (white_liste.test(champ_input.value)) {
        return true;
      } else {
        alert(msgErrCarLibCote);
        LancePage='NOK'
        champ_input.focus();
        return false;
      }
    }
    et dans la balise input faire un simple appel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onblur="checkText(this)">

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 6
    Par défaut
    Super je te remercie je teste ça de suite ! Encore merci pour la rapidité.

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 6
    Par défaut
    Bon ton code m'a facilité la vie, le problème initiale est toujours présent mais j'ai trouvé une feinte : j'enlève le onfocus() (qui sur Safari sur MAC entraine la boucle infini) et je l'ai remplacé par un encadré en rouge du champs fautif au moment du submit du formulaire.

    Encore Merci pour tout.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/03/2007, 19h20
  2. Réponses: 2
    Dernier message: 28/03/2007, 18h50
  3. [javascript] Ne fonctionne pas sur Safari
    Par sanosuke85 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/03/2007, 09h20
  4. [AJAX] Ajax en mode synchrone sur Safari
    Par The Blec dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/02/2006, 17h52
  5. onblur sur iframe avec Mz and co.
    Par mch_27 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/01/2006, 16h11

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