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 :

Je n'arrive pas à cacher un champ entièrement


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 388
    Points : 172
    Points
    172
    Par défaut Je n'arrive pas à cacher un champ entièrement
    Bonjour,
    J'ai un contrôle à faire sur un champ qui se nomme 'etat' si 'etat'== décédée, alors j'affiche un autre champ qui se nomme 'sépulture'. Il y a un petit problème c'est que le champ se cache bien mais les petites flèches de la liste s'affichent.
    Voici un aperçu des champs du formulaire :
    Nom : pb iiiiii.png
Affichages : 114
Taille : 21,5 Ko
    Code : (formulaire)
    Code html : 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
    <div class="row">				
    	<section class="col col-6">
    		<label class="select">
    			<select id="etat" name="etat">
    				<option value="">Etat</option>
    				<option value="EVIV">Vivante</option>
    				<option value="EDCD">Décédée</option>
    				<option value="ENSP">Ne sait pas</option>
    			</select>
    			<i></i>
    		</label>
    	</section>
    	<section class="col col-6">
    		<label class="select">
    			<select id="sepulture" name="sepulture">
    				<option value="">Statut sépulture si décédée</option>
    				<option value="EVIV">Mort pour la France</option>
    				<option value="EDCD">Sépulture de guerre</option>
    				<option value="ENSP">Sépulture communne</option>
    				<option value="ENSP">Sépulture classique</option>
    			</select>
    			<i></i>
    		</label>
    	</section>
    </div>
    J'ai une 2ème question : A quoi sert la balise <i> dans ce code ? Je vois que quand je les enlève, je n'ai plus les petites flèches, mais sur internet j'ai trouvé que c'était juste une balise qui rend le texte italique, mais le texte n'est pas en italique, je ne comprend pas.

    Merci

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu dois avoir du Javascript et du CSS derrière tout ça.
    Il faut nous montrer le code en question.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre chevronné

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Points : 1 768
    Points
    1 768
    Billets dans le blog
    1
    Par défaut
    Comme dit Sabotage, tu dois avoir du CSS sur ton element <i>.

    Pour faire disparaitre ton image, il faut soit faire un display:none de ton element ce qui me parait le plus simple.

    En JS

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
    document.getElementsByTagName('i').style.display = "none";
    ...
    En jquery

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
    $('i').css({'display':'none'});
    ...
    gl

  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 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    En JS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementsByTagName('i').style.display = "none";


    Comme le "s" de "Elements" l'indique, getElementsByTagName() renvoie une collection, tu ne peux donc pas lui appliquer de style, il faut le faire individuellement sur chaque élément de la collection.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 388
    Points : 172
    Points
    172
    Par défaut
    Merci pour vos réponses!
    J'ai compris pourquoi ça ne marchait pas. Dans mon formulaire j'ai mis un id="sepulture" dans la partie select, et la balise <i> n'était pas à l'intérieur, alors la solution est de mettre un id qui va aussi renfermer la balise <i>.
    Il me reste donc une seule question : à quoi sert la balise <i> ?

    Voici le code JavaScript pour les contrôles :
    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
    $(window).load(function () {
        $(document).ready(function () {
    	$('#statut').hide();
    	$('#sepulture').hide();
    	$('#contexte').on('change', function() {
    		if($(this).val() === 'WWII') {
    			$('#statut').show();
    		} else {
    			$('#statut').hide();
    		}
    	});
    	$('#etat').on('change', function() {
    		if($(this).val() === 'EDCD') {
    			$('#sepulture').show();
    		} else {
    			$('#sepulture').hide();
    		}
    	});
        });
    });
    Pour le code CSS, j'en ai plusieurs dont celui-ci :
    Code css : 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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    /**/
    /* normal state */
    /**/
    .sky-form .toggle i:before {
    	background-color: #cc3d3d;	
    }
    .sky-form .button {
    	background-color: #cc3d3d;
    }
     
    /**/
    /* hover state */
    /**/
    .sky-form .input:hover input,
    .sky-form .select:hover select,
    .sky-form .textarea:hover textarea,
    .sky-form .radio:hover i,
    .sky-form .checkbox:hover i,
    .sky-form .toggle:hover i,
    .sky-form .ui-slider-handle:hover {
    	border-color: #dc9596;
    }
    .sky-form .rating input + label:hover,
    .sky-form .rating input + label:hover ~ label {
    	color: #cc3d3d;
    }
     
    /**/
    /* focus state */
    /**/
    .sky-form .input input:focus,
    .sky-form .select select:focus,
    .sky-form .textarea textarea:focus,
    .sky-form .radio input:focus + i,
    .sky-form .checkbox input:focus + i,
    .sky-form .toggle input:focus + i {
    	border-color: #cc3d3d;
    }
     
    /**/
    /* checked state */
    /**/
    .sky-form .radio input + i:after {
    	background-color: #cc3d3d;	
    }
    .sky-form .checkbox input + i:after {
    	color: #cc3d3d;
    }
    .sky-form .radio input:checked + i,
    .sky-form .checkbox input:checked + i,
    .sky-form .toggle input:checked + i {
    	border-color: #cc3d3d;	
    }
    .sky-form .rating input:checked ~ label {
    	color: #cc3d3d;	
    }

  6. #6
    Membre confirmé
    Homme Profil pro
    Déveleoppeur Web/Mobile
    Inscrit en
    Avril 2013
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Déveleoppeur Web/Mobile
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 330
    Points : 545
    Points
    545
    Par défaut
    Bonjour, la balise i à l'origine est juste une balise html qui permet de mettre du texte en italique, de la même façon que la balise <b> met le texte en gras

  7. #7
    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 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Et pour masquer l'ensemble, il suffit de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if($(this).val() === 'EDCD') {
    	$('#sepulture').parent('label').show();
    } else {
    	$('#sepulture').parent('label').hide();
    }
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if($(this).val() === 'EDCD') {
    	$('#sepulture').show();
    } else {
    	$('#sepulture').hide();
    }
    et idem pour les autres.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 388
    Points : 172
    Points
    172
    Par défaut
    @ -Rpass-
    Merci. C'est juste, mais je ne vois pas de texte en italique et il n'y a rien entre <i> ......... </i>

    @Bovino
    Merci bcp

  9. #9
    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 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    mais je ne vois pas de texte en italique et il n'y a rien entre <i> ......... </i>
    Ben en fait, s'il n'y a rien dans la balise, c'est pas si étonnant que ça que ça soit pas en italique...
    Manifestement, si on en croit ta capture, la balise sert juste à y mettre les icônes de flèches.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  10. #10
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 388
    Points : 172
    Points
    172
    Par défaut
    Ben en fait, s'il n'y a rien dans la balise, c'est pas si étonnant que ça que ça soit pas en italique...
    Ah oui, j'y ai pas pensé

    Manifestement, si on en croit ta capture, la balise sert juste à y mettre les icônes de flèches.
    Dans ce cas, c'est plus logique merci. Une dernière question : est-ce qu'on peut remplacer <i> par n'importe quelle balise tant qu'elle existe en HTML ?

  11. #11
    Membre confirmé
    Homme Profil pro
    Déveleoppeur Web/Mobile
    Inscrit en
    Avril 2013
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Déveleoppeur Web/Mobile
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 330
    Points : 545
    Points
    545
    Par défaut
    est-ce qu'on peut remplacer <i> par n'importe quelle balise tant qu'elle existe en HTML ?
    En général tout est possible, mais dans ton code à toi, la balise i est surement utilisé (je n'ai pas regardé précisément) ultérieurement dans le css pour afficher les flèches. Donc tu peux remplacer la balise, mais tu risques d'avoir des changements d'affichage

  12. #12
    Membre chevronné

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Points : 1 768
    Points
    1 768
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Bovino Voir le message


    Comme le "s" de "Elements" l'indique, getElementsByTagName() renvoie une collection, tu ne peux donc pas lui appliquer de style, il faut le faire individuellement sur chaque élément de la collection.
    Effectivement j'ai écris sans tester... Par contre j'ai volontairement utilisé byTagName car je sais pas s'il était dans un contexte plusieurs <i> (plusieurs select)

    Et individuellement <i>:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var i = document.getElementsByTagName('i');
    i[0].style.display = "none"; //si un <i> sinon passer par une boucle

  13. #13
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 388
    Points : 172
    Points
    172
    Par défaut
    Merci à tous, je pense que tout est résolu

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 08/09/2014, 13h17
  2. [MySQL] Je n'arrive pas à modifier un champ
    Par geeka dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 08/08/2014, 20h03
  3. Réponses: 4
    Dernier message: 27/02/2008, 13h30
  4. Réponses: 6
    Dernier message: 30/01/2007, 09h05
  5. j'arrive pas a selectionner les champ d'un tableau a mysql
    Par ghita269 dans le forum Administration
    Réponses: 3
    Dernier message: 04/07/2006, 12h38

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