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 :

execution d'une fonction lors de l'evenment "onkeyup" sous IE


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    Points : 9
    Points
    9
    Par défaut execution d'une fonction lors de l'evenment "onkeyup" sous IE


    J'ai un champ (input) dans un formulaire, a l'evenement en keyup j'execute une fonction qui va verifier si la valeur est valide ou non, si oui je change la calsse d'une div, juste devant mon champs, comme quoi la valeur est valide.

    Bon sous FF tout va bien bien sûr mais pas IE!

    Mon code HTML:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input name="FirstName" type="text" id="FirstName" size="13" valide="0" required="1" value="<?php echo $FirstName; ?>" style="float:left" onkeyup="listnerName(this, 'flag_firstname');" tabindex="1"/>
    Mon 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
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    function listnerName(Obj, flag){
    	var checkPatternName = new RegExp("[0-9]");
    	var flagObj = document.getElementById(flag);
     
    	if( checkPatternName.test(Obj.value) ){
    		setClassName(flagObj, "invalide");
    		flagObj.innerHTML = "";
    		setValide(Obj, 0);
    	} else if( Obj.value == "" || Obj.value.length == 0 ) {
    		flagObj.innerHTML = "";
    		setValide(Obj, 0);
    		setClassName(flagObj, "invalide");
    	} else {
    		flagObj.innerHTML = "";
    		setValide(Obj, 1);
    		setClassName(flagObj, "valide");
    	}
    }
     
    function setClassName(Obj, class){
    	Obj.className = class;
    }
    Bon j'ai mis une suite de testes, par exemple "alert()", juste que début de la fonction : listnerName, l'alert s'affiche, mais quand je le met a l'intérieur du premier IF ça ne marche pas!

    Donc je pense que j'ai mal utiliser l'objet RegExp!

    J'ai cherché sur le forum mais apparemment personne n'a eu ce cas!

    Merci d'avance.
    Ahmed.

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

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Tu veux vérifier que le champ input contient au moins 1 caractère numérique ?
    Dis-nous en langage courant quelles sont tes conditions de validité.

    (ps : puisque tu as eu la bonne idée de donner une propriété ID à ton input, tu pourrais aussi bien le récupérer dans ton script avec un getElementById, plutôt que de le passer en paramètre avec this... ^^)

  3. #3
    Futur Membre du Club
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    Points : 9
    Points
    9
    Par défaut


    Tout d'abord merci pour ta reponse.

    En fait non, je veux que le champ contient que du texte (pas de numéros, pas de caractères spéciaux), et donc le moment ou l'internaute tape un numéro (
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if( checkPatternName.exec(Obj.value) )
    ) et bin je met la classe CSS "invalide".

    Par contre l'idée de passer l'ID par paramètre ça peux résoudre le problème.
    Je vais tester.

    Merci.
    Ahmed.

  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 : 53
    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
    Etonnant...
    Essaye comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var checkPatternName = /d/;

  5. #5
    Futur Membre du Club
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Salut,

    Pour répondre a RomainVALERI, j'ai testé de passer l'ID au lien de "this" et a l'intérieur de la fonction listnerName j'ai mis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var Obj = document.getElementById(id)
    mais ça n'a pas marcher!

    Et je vais essayer la solution de Bovino.

    Merci.
    Ahmed.

  6. #6
    Futur Membre du Club
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Salut,

    J'ai essayé aussi la solution de Bovino et ça marche pas aussi!

    Merci.

  7. #7
    Futur Membre du Club
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Toujours pas de solution !!

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

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    A priori, au vu de ce que as demandé, la solution de Bovino semble tout-à-fait adaptée, bizarre que ça ne "marche pas"... ^^ montre ton code (html généré + javascript) c'est peut-être une erreur de syntaxe ou un détail manquant quelquepart.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/08/2006, 14h43
  2. Execution d'une fonction lors confirmation de msgbox
    Par zorba49 dans le forum VBScript
    Réponses: 2
    Dernier message: 02/08/2006, 00h02
  3. Erreur PLSQL lors de l'execution d'une fonction
    Par chicken92000 dans le forum PL/SQL
    Réponses: 3
    Dernier message: 17/03/2006, 17h12
  4. Execution d'une fonction lors de l'appui sur CTRL+ALT+I
    Par cyberlewis dans le forum Windows
    Réponses: 4
    Dernier message: 17/03/2004, 01h35

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