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 :

Passage de valeur par reference


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 24
    Points : 16
    Points
    16
    Par défaut Passage de valeur par reference
    bonjour,
    voici mon exemple :
    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
    <input class="zonedate" name="Djour" onchange="verifierlongueur('Djour',2)" type="text" /> 
    <input class="zonedate" name="Dmois" onchange="verifierlongueur('Dmois',2)" type="text" /> 
     
    function verifierlongueur(champ,longueur)
    {
    	if(document.form1.elements[champ].value.length>longueur)
    	{
    		alert("La zone doit etre au maximum  de longueur"+longueur);
    		document.form1.elements[champ].focus();
     
     
    	}
    	else
    	{
    		alert("Pas erreur");
    	}
    }
    je voudrais laisser le focus sur la zone testée si la longueur n'est pas bonne.
    cette fonction est appelée de plusieurs zones mais ne fonctionne pas
    je voulais savoir si on peut faire reference au nom de la zone au lieu de son numero
    Merci

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    au lieu de l'id, passe l'objet lui même en paramètre. Tu auras le même appel partout
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onchange="verifierlongueur(this,2);"
    Ca te simplifie ta fonction, et tu pourras terminer par A+

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    merci de ta reponse.
    j'ai fais un essai mais j'ai un problème dans la fonction. Dans le deboger il me trouve une erreur 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 verifierlongueur(champ,longueur)
    {
    	if(document.form1.elements[champ].value.length>longueur)
    	{
    		alert("La zone doit etre au maximum  de longueur"+longueur);
    		champ.focus();
    	}
    	else
    	{
    		alert("Pas erreur");
    	}
    }
    il ne comprends plus la variable "champ". est ce qu'il faut que je modifie le nom de cette variable en 'this' ?

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par psmpa Voir le message
    il ne comprends plus la variable "champ". est ce qu'il faut que je modifie le nom de cette variable en 'this' ?
    Non, pas du tout : "champ" ne représente plus un id.
    C'est l'équivalent de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.form1.elements[champ]
    de ton ancienne version.
    Suffit de remplacer (ce que tu as fais pour focus() ) =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(champ.value.length>longueur)
    Sinon, tu as vu le petit bouton "#" quand tu saisis un post : c'est pour ajouter les balises qui mettent en forme ton code.
    Tu as le droit de l'utiliser

    A+

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    merci pour ton aide car je débute dans la programmation web. je développe habituellement en visual fox pro.
    par contre mon problème n'est pas résolu le focus passe quand même a la zone suivante.
    ok pour le # , je ne savais pas car je poste rarement la recherche dans les forums est souvent suffisante

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par psmpa Voir le message
    par contre mon problème n'est pas résolu le focus passe quand même a la zone suivante.
    Tu as essayé de remplacer ton par un ?
    Citation Envoyé par psmpa Voir le message
    je ne savais pas car je poste rarement la recherche dans les forums est souvent suffisante

    C'est tout à ton honneur

    A+

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    Bonjour,
    je reviens avec mon problème car j'ai essayé le code que tu m'as donné mais c'est toujours pareille.
    il y a un truc qui me chiffonne, j'utilise Expression Web2 et bizarrement l'achèvement de code ne me propose pas la methode Focus().
    par contre pas de problème avec le test, l'achèvement marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(champ.value.length>longueur)
    	{
    j'ai meme essayé de mettre "champ.focus(); avant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    	champ.focus();
    	alert("La zone doit etre au maximum  de longueur"+longueur);
    	//champ.focus();
    	}
    Une idee ?

Discussions similaires

  1. passage de <this> par reference
    Par eKinai dans le forum C#
    Réponses: 7
    Dernier message: 22/01/2007, 12h00
  2. erreurs lors de passage de valeurs par un struct
    Par Aliveli dans le forum Visual C++
    Réponses: 2
    Dernier message: 15/10/2006, 23h15
  3. Le passage de paramètres par REFERENCES
    Par yohann_ dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 25/01/2006, 19h47
  4. [String]passage de String par reference?
    Par Snivel dans le forum Langage
    Réponses: 17
    Dernier message: 02/12/2005, 16h24
  5. [String] passage d'objet par référence
    Par adilou1981 dans le forum Langage
    Réponses: 8
    Dernier message: 01/04/2005, 15h22

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