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

jQuery Discussion :

Insérer <INPUT> sous condition Jquery


Sujet :

jQuery

  1. #1
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 90
    Points : 53
    Points
    53
    Par défaut Insérer <INPUT> sous condition Jquery
    bonjour,
    Je suis toujours de niveau initié.
    Voila mon idée, je voudrais construire ce formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <form name="creer_dossier" action="creer_dossier.php" method="POST">
      <label for="civilité" class="label">Civilité</label>
        <select name="titre" id="titre">
          <option value="Mr">Mr</option>
          <option value="Mlle">Mlle</option>
         <option value="Mme">Mme</option>
      </select>
    </form>
    si l'option "Mme" est sélectionnéé, je demande à jquery de m'afficher l' input suivant pour saisir le nom de jeune fille de Mme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    nom de jeune fille <input type="text" name="nom_jeune_fille">
    J'ai essayé ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $('#titre').change(function() {
    $('#titre').html('<input type="text" name="nom_jeune_fille">');
    });
    et bien d'autres encore, mais rien ne fonctionne. Je demande de l'aide ! Merci!!!!

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Bonsoir

    Exemple :

    Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
    .labelNomJeuneFille { display: none; margin-left: 6px; }

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <form name="creer_dossier">
        <label for="civilité" class="label">Civilité</label>
        <select name="titre" id="titre">
            <option value="Mr">Mr</option>
            <option value="Mlle">Mlle</option>
            <option value="Mme">Mme</option>
        </select>
        <label class="labelNomJeuneFille">Nom de jeune fille : <input type="text" name="nom_jeune_fille"></label>
        <input type="submit" value="Go">
    </form>

    Code JS : 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
    $( function(){ // forme abrégée de $(document).ready(function(){
     
        var nomJeuneFille = "inconnu",
            jObjInputNomJeuneFille = $( "input[name='nom_jeune_fille']" ),
            jObjTitre = $( "#titre" );
     
        jObjInputNomJeuneFille.on( "change", function(){
            nomJeuneFille = jObjInputNomJeuneFille.val();
        });
     
        jObjTitre.on( "change", function(){
            var str = jObjTitre.val();
     
            if ( str === "Mlle" || str === "Mme" ){
                $( ".labelNomJeuneFille" ).css( "display", "inline-block" );
                jObjInputNomJeuneFille.focus();
            }
        });
     
        $( "form[name='creer_dossier']" ).on( "submit", function(){
     
            // debug, console, touche F12
            console.log( jObjTitre.val(), nomJeuneFille );
     
            // stop la soumission du formulaire si false
            return false;
        });
     
    });

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 90
    Points : 53
    Points
    53
    Par défaut
    merci pour ta réponse. Peux tu m'expliquer le déroulé du script plus clairement!!

  4. #4
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 90
    Points : 53
    Points
    53
    Par défaut
    j'essaye d'e comprendre.
    Moi, je ne veux pas dans un premier temps que l'imput
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <label class="labelNomJeuneFille">Nom de jeune fille : <input type="text" name="nom_jeune_fille"></label>
    figure dans mon <form>. C'est en sélectionnant l'option "Mme" qu'il doit apparaitre dans le formulaire et seulement à cette condition.

  5. #5
    Membre éclairé Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Points : 831
    Points
    831
    Par défaut
    Bonjour,

    Citation Envoyé par afibase Voir le message
    Moi, je ne veux pas dans un premier temps que l'imput
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <label class="labelNomJeuneFille">Nom de jeune fille : <input type="text" name="nom_jeune_fille"></label>
    figure dans mon <form>.
    C'est le pourquoi du CSS :
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    .labelNomJeuneFille { display: none; margin-left: 6px; }

    Dans un premier temps, cet input n'est pas visible.

    =========================================================

    Citation Envoyé par afibase Voir le message
    C'est en sélectionnant l'option "Mme" qu'il doit apparaitre dans le formulaire et seulement à cette condition.
    Ce n'est que lorsque l'option sélectionnée change (événement "change" sur #titre) que cet input est rendu visible :
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    jObjTitre.on( "change", function(){
            var str = jObjTitre.val();
     
            if ( str === "Mlle" || str === "Mme" ){
                $( ".labelNomJeuneFille" ).css( "display", "inline-block" ); // <----- L'input est rendu visible
                jObjInputNomJeuneFille.focus();
            }
        });

    Fred

  6. #6
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 90
    Points : 53
    Points
    53
    Par défaut
    ok j'ai pris note et ça fonctionne merci à tout les 2.
    J'ai cependant rectifié la condition if, afin que le label et l'input soit aligner et visible
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ---
    if ( str === "Mme" ) 
    {
    $( ".labelNomJeuneFille" ).css( "display", "inline-block" );
    $( ".Fille" ).css( "display", "inline-block" );
    jObjInputNomJeuneFille.focus();
    }

  7. #7
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Citation Envoyé par afibase Voir le message
    j'essaye d'e comprendre.
    Moi, je ne veux pas dans un premier temps que l'imput
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <label class="labelNomJeuneFille">Nom de jeune fille : <input type="text" name="nom_jeune_fille"></label>
    figure dans mon <form>. C'est en sélectionnant l'option "Mme" qu'il doit apparaitre dans le formulaire et seulement à cette condition.
    Citation Envoyé par afibase Voir le message
    ok j'ai pris note et ça fonctionne merci à tout les 2.
    J'ai cependant rectifié la condition if, afin que le label et l'input soit aligner et visible
    Bonsoir

    Avoir inclus "Mlle" dans la condition "if" est une erreur. Comme excuse, je dirai que j'ai d'autres tracas, que j'ai des problèmes avec les yeux et que ma santé n'est pas très bonne en ce moment.

    Il serait logique de tester le code proposé avant de protester. Les expressions "je veux" et "il me faut" sont inappropriées. Les bénévoles apportent une aide pour vaincre un point de blocage dans un code, pas pour écrire ce code à votre place.

    Débutant ou non en jQuery, vous devez être capable de tester et de transformer une proposition de code pour y changer un point de détail (position d'un élément dans le code, élément hidden ou condition "if").

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

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

Discussions similaires

  1. Insérer des lignes figées sous condition
    Par Nico Co dans le forum Général VBA
    Réponses: 4
    Dernier message: 21/05/2015, 10h15
  2. [XL-2010] insérer une image sous condition sur plusieurs lignes
    Par jesslab dans le forum Excel
    Réponses: 2
    Dernier message: 06/12/2013, 09h35
  3. comment insérer une image sous condition?
    Par elabadiabdelmoula dans le forum Langage
    Réponses: 8
    Dernier message: 21/02/2013, 12h57
  4. [FPDF] Insérer image sous condition
    Par legrandse dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 08/07/2011, 17h48
  5. [MySQL] parcourir un fichier csv et l'insérer en bdd sous conditions
    Par kairi084 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 08/10/2010, 09h48

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