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 :

Comment récupérer la présence d'une image


Sujet :

JavaScript

  1. #1
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut Comment récupérer la présence d'une image
    Bonsoir,

    J'ai un formulaire sur lequel j'affiche sous forme de tableau une liste.
    Le tableau est composé de 2 informations, une image et une case à cocher.

    L'image n'est présente que sous condition ainsi que la case à cocher. Si j'ai une image, je n'ai pas de case à cocher.

    Mais je peux selon la demande de l'utilisateur, activer une case à cocher pour les images présentes.

    J'ai donc un javascript qui réagi pour faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    document.getElementById(Chckbox[i].getAttribute("id")).style.visibility=(document.getElementById('reactivdossier').checked==false)?'visible':'hidden';
    document.getElementById(Chckbox[i].getAttribute("id")).style.visibility=(document.getElementById('reactivdossier').checked==true)?'visible':'hidden';
    Je souhaite conditionner ce traitement qu'aux lignes qui ont une image et pas celles qui n'ont que des cases à cocher.

    Je veux donc tester que si une image est présente, alors j'exécute mon javascript.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(document.getElementById(Image[i])=='???')
    {
    document.getElementById(Chckbox[i].getAttribute("id")).style.visibility=(document.getElementById('reactivdossier').checked==false)?'visible':'hidden';
    document.getElementById(Chckbox[i].getAttribute("id")).style.visibility=(document.getElementById('reactivdossier').checked==true)?'visible':'hidden';
    }

    Mon problème est : que dois-je mettre à la place de "???"

    Merci d'avance

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 199
    Points : 164
    Points
    164
    Par défaut
    Tu as juste à faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    if(document.getElementById(Images[i])){
       ........
    }
    En fait ca renvoi un booleen on va dire donc tu test juste si c'est vrai ou faux. Si c'est vrai alors il existe sinon il n'esiste pas.

    Voila

  3. #3
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    L'image apparaît en fonction d'un test de valeur.
    Donc plutot que de récupérer la présence de l'image qui n'était pas toujours présente ce qui me faisait un décalage entre la table des images et la table des checkbox, je récupère cette valeur.

    Lorsqu'elle est à 5, j'ai une image.

    Le script final donne ceci :

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    // Récupération des cases à cocher et des valeurs d'image
    	var Input = document.getElementById(conteneur).getElementsByTagName('input');
    	var Chckbox = new Array();
    	for (i=0;i<Input.length;i++)
    	{
    	    if (Input[i].nodeName=="INPUT")
    			if (Input[i].getAttribute("type")=="checkbox")
    			{
    				Chckbox.push(Input[i])
    			}
    	}
     
    	var Image = new Array();
    	for (i=0;i<Input.length;i++)
    	{
    	    if (Input[i].nodeName=="INPUT")
    			if (Input[i].getAttribute("type")=="hidden")
    			{
    				Image.push(Input[i])
    			}
    	}      
     
    	for (i in Chckbox)
    	{
    		if (a_faire=='1')
    		{
    			if(Image[i].value== '5')
    			{
    				document.getElementById(Chckbox[i].getAttribute("id")).style.visibility=(document.getElementById('reactivdossier').checked==false)?'visible':'hidden';
    				document.getElementById(Chckbox[i].getAttribute("id")).style.visibility=(document.getElementById('reactivdossier').checked==true)?'visible':'hidden';
    			}
    		}
    		else
    		{
    			document.getElementById(Chckbox[i].getAttribute("id")).disabled=(document.getElementById('reactivdossier').checked==true)?false:true;
    			document.getElementById(Chckbox[i].getAttribute("id")).disabled=(document.getElementById('reactivdossier').checked==false)?false:true;
    		}
    	}
    Le html correspondant :

    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
    24
    25
    26
    <body  onload="GereControle('reactivdossier','tableau','1');">
    ...
    <input name="reactiver" value="1" id="reactivdossier" onclick="GereControle('reactivdossier', 'tableau','1');" type="checkbox">Oui
    <table align="center" border="0" width="100%">
    <tbody id="tableau">
    <tr>
    <td></td>
    <td>
    	<input name="id_trt[0]" id="id_trt[0]" value="1" type="hidden">
    	<input name="checkbox[0]" id="checkbox[0]" value="1" type="checkbox">
    	<label for="checkbox[0]" title="Sélection unitaire pour l'archivage">
    </label></td>
    </tr>
    ...
    <tr>
    <td align="center"><img src="../images/historique.png" alt="Archivé" title="Archivé" id="Image[5]"></td>
    <td>
    	<input name="id_trt[5]" id="id_trt[5]" value="5" type="hidden">
    	<input style="visibility: hidden;" name="checkbox[5]" id="checkbox[5]" value="505" type="checkbox">
    	<label for="checkbox[5]" title="Sélection unitaire pour l'archivage">
    </label></td>
    </tr>
    </tbody>
    </table>
    </form>
    </body>
    Merci

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

Discussions similaires

  1. Comment récupérer le Width d'une image
    Par zooffy dans le forum ASP.NET
    Réponses: 2
    Dernier message: 15/05/2008, 09h19
  2. Comment récupérer la taille d'une image via un lien ?
    Par MaTHieU_ dans le forum Web & réseau
    Réponses: 5
    Dernier message: 17/09/2007, 14h37
  3. comment récupérer les dimensions d'une image
    Par sirius25 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 07/08/2006, 15h47
  4. [VB.Net] Comment récupérer les proprietes d'une image ?
    Par Cirdan Telemnar dans le forum VB.NET
    Réponses: 2
    Dernier message: 29/06/2006, 16h15
  5. Réponses: 3
    Dernier message: 10/03/2006, 14h15

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