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 :

creer une fonction unique pour checkbox


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 37
    Points : 9
    Points
    9
    Par défaut creer une fonction unique pour checkbox
    Bonsoir j'ai écrit une fonction pour rendre visible ou pas mes select et j'aimerais savoir si c'est possible de faire une fonction unique
    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
    function coche(){
    //alert(document.getElementById("case").checked);
    	if (document.getElementById("case").checked==false)
    		{
    		document.getElementById("Numin").style.display='none'; 
    		} 
      else	{
      		document.getElementById("Numin").style.display='block';
      		}}
      function casecochee(){
    	//alert(document.getElementById("case1").checked);
    		if (document.getElementById("case1").checked==false)
    			{
    			document.getElementById("AdrIp").style.display='none'; 
    			} 
    	  else	{
    	  		document.getElementById("AdrIp").style.display='block';
    	  		}}
    De plus, je voudrais que lors de l'envoie des données mes select soient visibles voici mon code mais qui ne fonctionne pas depuis que j'ai creer mes fonction coche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php 
    if (!empty($_GET["NumIp"])){
    $NumIp=$_GET["NumIp"];}	  
     
    if ($NumIp="true"){
             $selected1="checked";
                   }
     $selected1="";
     
    	     echo "<input type='checkbox' id='case1' name='NumIp' value=\"".$NumIp."\"".$selected1." onChange=\"casecochee();\">";	 
     ?>

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 313
    Points : 330
    Points
    330
    Par défaut
    Par exemple, tu peux appeler ta fonction comme ça :
    onchange="mafonction(this)"

    En paramétre, on passe this qui sera l'objet déclencheur.

    Du coup, dans ta fonction, tu peux savoir quel id est déclencheur avec :
    function mafonction(obj) {
    var id = obj.id;
    ...


    Maintenant que tu as l'id, tu peux te baser sur une structure de donnée via, par exemple un Array, avec l'id comme clé.
    exemple : var conf = {'case':['numin'], etc...}

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 37
    Points : 9
    Points
    9
    Par défaut
    Merci je vais essayer !

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 37
    Points : 9
    Points
    9
    Par défaut
    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 mafonction(obj){
     
    var id = obj.id;
     
    var conf = {'case':['numin'],'case1':['AdrIp'];}
    	for (var i in conf){
    	if (document.getElementById(id).checked==false)
    		{
    		document.getElementById("conf[i]").style.display='none'; 
    		} 
      else	{
      		document.getElementById("conf[i]").style.display='block';
      		}}
    }
    Bon voilà j'ai fais ça mais bon y'a un truc que j'ai pas du saisir, je pense que c'est dans les parenthèses du getElement... Merci

    Et j'appel ma fonction comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onchange=mafonction(this)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 313
    Points : 330
    Points
    330
    Par défaut
    T'es pas loin
    Citation Envoyé par under Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ...
    var conf = {'case':['numin'],'case1':['AdrIp'];} // point-virgule incongru
    ...		
               document.getElementById("conf[i]").style.display='none'; // Mauvaise façon d'accéder à ton id(*) 
    ...
    (*) De la manière dont tu l'as écrit, c'est une chaine de caractère. Ce n'est pas ce que tu souhaites pour ce cas.

    Le tableau (en fait un Object et non pas un Array) est composé d'une propriété à laquelle est affectée un Array (qui n'a qu'un index).
    On y accède donc par conf[id] dans ton cas (n.b. : J'ai un doute quant à l'utilité des l'apostrophes pour tes clés). De cette manière on récupère donc un Array. Puis on veut trouver la valeur de l'index 0. Donc on fait :
    conf[id][0]. Et voilà !

    Pourquoi ton 'for(var i in conf) ...' ? Pas utile puisque tu cherches à bosser pour un id en paramètre, non ?

    Perso, j'aurais poser un truc comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    document.getElementById(conf[id][0]).style.display = (document.getElementById(id).checked) ? 'block' : 'none';
    ...
    'mafonction' et 'conf' étaient des noms pour l'exemple. Tu es libre de les appeler comme bon te semble, tant que tu n'utilises pas de mots réservés

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 37
    Points : 9
    Points
    9
    Par défaut
    Merci beaucoup cela fonctionne
    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 mafonction(obj){
     
    var id = obj.id;
     
    var conf = {case:['Numin'],case1:['champsIP']}
     
    	if (document.getElementById(id).checked==false)
    		{
    		document.getElementById(conf[id]).style.display='none'; 
    		} 
      else	{
      		document.getElementById(conf[id]).style.display='block';
      		}
    }
    Par contre comment dois-je appeler ma fonction au chargement de la page. Histoire de faire en sorte que mes champs soient cachés. Merci

  7. #7
    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,
    Citation Envoyé par under Voir le message
    Par contre comment dois-je appeler ma fonction au chargement de la page. Histoire de faire en sorte que mes champs soient cachés.
    la réponse est sur la première ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function mafonction(obj)
    Tu appelles ta fonction (sur onload du body) en lui passant en paramètre l'objet ciblé

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

Discussions similaires

  1. [XL-2013] comment creer une fonction en VBA pour faire concatenate et right voir exemple
    Par Abourarda dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/04/2014, 21h56
  2. Creer une fonction pour un calcul
    Par micrak11 dans le forum C++
    Réponses: 7
    Dernier message: 18/01/2008, 08h54
  3. creer une fonction avec arguments
    Par niglo dans le forum ASP
    Réponses: 3
    Dernier message: 03/06/2005, 08h04
  4. Creer une nouvelle référence pour le driver ODBC
    Par tripper.dim dans le forum Connexion aux bases de données
    Réponses: 3
    Dernier message: 04/01/2005, 22h57
  5. [langage] Creer une fonction qui met en majuscule ?
    Par Cyber@l dans le forum Langage
    Réponses: 6
    Dernier message: 04/12/2003, 18h44

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