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 :

Fonction d'activation de champ


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 52
    Par défaut Fonction d'activation de champ
    Bonjour,


    Mon but est d'activer un champ X si le champ Y est rempli ou pas.
    J'ai fais ce bout de code mais cela ne marche pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    		function active(c1, c2){
    		    if (c1 == "")
    		        c2 = true;
    		    else
    		        c2 = false;
    		}
    		</script> 
     
    onclick="active(document.formulaire.champY.value, document.formulaire.champX.disabled)"
    Aussi, j'ai mis la fonction sur onclick mais je pense que onchange est mieux ?

    Merci

  2. #2
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    dans ton code tu positionne une variable
    ta fonction ne retourne rien
    et le if ne sert à rien dans la vie de tous les jours tu ne dis pas "si vrai alors vrai sinon faux"

    mais c'est quoi pour toi activer un champ ?

    A+JYT

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 52
    Par défaut
    Citation Envoyé par sekaijin Voir le message
    dans ton code tu positionne une variable
    ta fonction ne retourne rien
    Je dois obligatoirement renvoyer quelque chose ?

    Citation Envoyé par sekaijin Voir le message
    et le if ne sert à rien dans la vie de tous les jours tu ne dis pas "si vrai alors vrai sinon faux"
    Non, si le champ C1 est vide alors je désactive le champ C2 sinon j'active le champ C2


    Citation Envoyé par sekaijin Voir le message
    mais c'est quoi pour toi activer un champ ?
    Activer un champ c'est la possibilité d’écrire dedans avec la propriété "disabled ".

  4. #4
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 52
    Par défaut
    Bon j'ai un peu avancé.

    Ce programme fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function active2(){
    	if (document.formulaire.ch1.value == "")
    		document.formulaire.ch2.disabled = true;
    	else
    		document.formulaire.ch2.disabled = false;		
    }
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="ch1"  onkeyup="active2();">


    Mais ceci ne marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function active(c1, c2){
    	if (c1 == "")
    		c2 = true;
    	else
    		c2 = false;	
    }
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="ch1"  onkeyup="active(document.formulaire.ch1.value, document.formulaire.ch2.disabled);">

    Donc pourquoi ça ne fonctionne pas ? problème sur les arguments/variabls ?

  5. #5
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    Ok je commence à comprendre ton problème

    en JavaScript comme dans beaucoup de langage les paramètres sont passés soit par référence soit par valeur

    Passer une référence signifie qu'une modification du paramètre dans la fonction à un effet sur la variable qui à été passé.
    Passer une valeur signifie que seules les données sont passé à la fonction qui n'a aucune connaissance de la variable. une modification du paramètre dans la fonction n'a aucun impact sur la variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var a = 10;
    function f(x) {x = x +1; console.log(x);}
    f(a);
    console.log(a);
    affiche 11 puis 10 a n'a pas changé car seule la valeur 10 est transmise à la fonction.

    les types simples sont passés par valeur pour pouvoir passer une référence il faut passer un objet.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function active(ch1, ch2){
       ch2.disabled = ("" == ch1.value);
    }
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="ch1"  onkeyup="active(document.formulaire.ch1, document.formulaire.ch2);">

    lorsque je dis que le if est inutile c'est parce que le test de retourne true ou false
    lorsqu'il te retourne true tu affecte true et lorsqu'il te retourne false tu affecte false.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (a == b) {
      c = true;
    } else {
      c = false;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (a == b) {
      c = true; // true est la valeur de (a == b) car ont est dans le cas ou a égale b
    } else {
      c = false; // false est la valeur de (a == b) car ont est dans le cas ou a est différent b
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (a == b) {
      c = (a == b); // true car ont est dans le cas ou a égale b
    } else {
      c = (a == b); // false car ont est dans le cas ou a est différent b
    }
    tu as écrit sans t'en rendre compte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (a == b) {
      c = (a == b);
    } else {
      c = (a == b);
    }
    ce qui c'écrit simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c = (a == b); // true dans cas ou a égale b ou false dans le cas ou a est différent b
    donc dans tous les cas tu affecte la valeur que te retourne le test.

    A+JYT

  6. #6
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 52
    Par défaut
    Merci beaucoup pour ton aide.

    Je comprends mieux pour le passage des paramètre des fonction.

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

Discussions similaires

  1. activer un champs de texte en fonction d'un combo
    Par mima_mine dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/11/2008, 14h41
  2. activation de champ
    Par PAYASS59 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/05/2006, 08h44
  3. Activé un champ en mode ReadOnly
    Par ludobado dans le forum Access
    Réponses: 3
    Dernier message: 21/04/2006, 12h06
  4. Réponses: 7
    Dernier message: 06/01/2006, 10h47
  5. [Débutante]Fonction pour écrire un champ vide
    Par Bewitch dans le forum ASP
    Réponses: 14
    Dernier message: 30/08/2005, 11h43

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