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 :

Initialiser un formulaire en fonction d'un radio


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 143
    Par défaut Initialiser un formulaire en fonction d'un radio
    hello j'ai un petit soucis de code jquery ...

    j'ai un formulaire avec plein de champ le tout piloté via un champ radio

    1 si il n'y a rien de choisis alors on affiche cache des champs (initialisation)

    2 si on selectionne un champ cela affiche cache des champs (onchange)

    3 si on recharge un formulaire il affiche les champs en fonction de la valeur du champ bouton principal(check)

    La partie 2-3 fonctionne nikel mais je ne comprend pas comment faire la partie 1

    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
    ( function($) {
    $(document).ready(function() {
     
    $('input:radio[name="custom[type-de-fiche-annuaire][0]"]:checked').each(function() {
       var valeurInit = $(this).val(); // valeur sélectionnée au chargement de la page
    console.log(valeurInit);
     
    if(valeurInit === '') {
    // ici on affiche le formulaire au chargement si rien n'est checker
    }
    else if(valeurInit == 'administration') {// si la valeur vaut administration
    } 
    else if (valeurInit == 'sante') { // si si la valeur vaut sante
    }
    });
        $('input:radio[name="custom[type-de-fiche-annuaire][0]"]').change(function() { // lorsqu'on change de valeur dans la liste
        var valeur = $(this).val(); // valeur sélectionnée au click
    //alert($(this).val());
     
     
    if(valeur != '') { // si non vide
    } 
    else if (valeur == 'sante') { // si la valeur est changée pour sante
    }
    else if (valeur == 'etascolaire') { // si la valeur est changée pour etablissement scolaire
    }else{
    }
        });
     
    });
    } ) ( jQuery );
    le consol log ne revoit des infos que quand je change ou que je charge un formulaire ayant déjà une valeur ....

    console.log(valeurInit);
    j'ai l'impression que mon check
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(valeurInit === '') {
    j'ai essayer avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('valeurInit').is(':checked'){
    n'ai pas bon mais je n'arrive pas a trouvé la bonne approche ...
    je suis débutant en js je bidouille beaucoup donc désolé par avance pour l'horreur du code
    lol
    Merci par avance pour votre aide

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 513
    Par défaut
    Salut,

    Citation Envoyé par micker
    1 si il n'y a rien de choisis alors on affiche cache des champs (initialisation)
    Donc il est bien possible qu'aucun input radio ne soit sélectionné après que la page est chargée, ce qui signifie que ce sélecteur $('input:radio[name="custom[type-de-fiche-annuaire][0]"]:checked') n'est jamais ciblé par jQuery.

    Tu peux nous montrer le code html généré, plus précisément celui des input radio ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 143
    Par défaut
    hello voici la version light
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    <form action="" method="post" name="adminForm" id="adminForm" class="form-validate form-horizontal" enctype="multipart/form-data">
     
    	....			
    						<div id="custom_type-de-fiche-annuaire_0" class="fc_input_set has-pretty-child">
    							 <div class="clearfix prettyradio labelright fcradiocheck blue"><input type="radio" id="custom_type-de-fiche-annuaire_0_0" data-element-grpid="custom_type-de-fiche-annuaire_0" name="custom[type-de-fiche-annuaire][0]" data-customclass="fcradiocheck" class="use_prettycheckable custom_type-de-fiche-annuaire_0" value="administration" style="display: none;"><a href="#" class=" "></a>
    <label for="custom_type-de-fiche-annuaire_0_0"> Administration</label></div>&nbsp; <div class="clearfix prettyradio labelright fcradiocheck blue"><input type="radio" id="custom_type-de-fiche-annuaire_0_1" data-element-grpid="custom_type-de-fiche-annuaire_0" name="custom[type-de-fiche-annuaire][0]" data-customclass="fcradiocheck" class="use_prettycheckable custom_type-de-fiche-annuaire_0" value="sante" style="display: none;"><a href="#" class=" "></a>
    <label for="custom_type-de-fiche-annuaire_0_1"> Santé</label></div>&nbsp; <div class="clearfix prettyradio labelright fcradiocheck blue"><input type="radio" id="custom_type-de-fiche-annuaire_0_2" data-element-grpid="custom_type-de-fiche-annuaire_0" name="custom[type-de-fiche-annuaire][0]" data-customclass="fcradiocheck" class="use_prettycheckable custom_type-de-fiche-annuaire_0" value="assmat" style="display: none;"><a href="#" class=" "></a>
    <label for="custom_type-de-fiche-annuaire_0_2"> Assistante maternelle</label></div>&nbsp; <div class="clearfix prettyradio labelright fcradiocheck blue"><input type="radio" id="custom_type-de-fiche-annuaire_0_3" data-element-grpid="custom_type-de-fiche-annuaire_0" name="custom[type-de-fiche-annuaire][0]" data-customclass="fcradiocheck" class="use_prettycheckable custom_type-de-fiche-annuaire_0" value="etascolaire" style="display: none;"><a href="#" class=" "></a>
    <label for="custom_type-de-fiche-annuaire_0_3"> Etablissement scolaire</label></div>&nbsp; <div class="clearfix prettyradio labelright fcradiocheck blue"><input type="radio" id="custom_type-de-fiche-annuaire_0_4" data-element-grpid="custom_type-de-fiche-annuaire_0" name="custom[type-de-fiche-annuaire][0]" data-customclass="fcradiocheck" class="use_prettycheckable custom_type-de-fiche-annuaire_0" value="alaealsh" style="display: none;"><a href="#" class=" "></a>
    <label for="custom_type-de-fiche-annuaire_0_4"> ALAE / ALSH</label></div>&nbsp; <div class="clearfix prettyradio labelright fcradiocheck blue"><input type="radio" id="custom_type-de-fiche-annuaire_0_5" data-element-grpid="custom_type-de-fiche-annuaire_0" name="custom[type-de-fiche-annuaire][0]" data-customclass="fcradiocheck" class="use_prettycheckable custom_type-de-fiche-annuaire_0" value="association" style="display: none;"><a href="#" class=" "></a>
    <label for="custom_type-de-fiche-annuaire_0_5"> Association</label></div>&nbsp; <div class="clearfix prettyradio labelright fcradiocheck blue"><input type="radio" id="custom_type-de-fiche-annuaire_0_6" data-element-grpid="custom_type-de-fiche-annuaire_0" name="custom[type-de-fiche-annuaire][0]" data-customclass="fcradiocheck" class="use_prettycheckable custom_type-de-fiche-annuaire_0" value="acteureconomique" style="display: none;"><a href="#" class=" "></a>
    <label for="custom_type-de-fiche-annuaire_0_6"> Acteur économique</label></div>&nbsp; <div class="clearfix prettyradio labelright fcradiocheck blue"><input type="radio" id="custom_type-de-fiche-annuaire_0_7" data-element-grpid="custom_type-de-fiche-annuaire_0" name="custom[type-de-fiche-annuaire][0]" data-customclass="fcradiocheck" class="use_prettycheckable custom_type-de-fiche-annuaire_0" value="equipement" style="display: none;"><a href="#" class=" "></a>
    <label for="custom_type-de-fiche-annuaire_0_7"> Equipement</label></div>
     
    						</div>					
    			....
     
    				<button class="btn btn-success" type="button" onclick="return flexi_submit('save', 'flexi_form_submit_btns', 'flexi_form_submit_msg');">
    					<span class="fcbutton_save">Ajouter et quitter</span>
    				</button>
     
     
    			<button class="btn" type="button" onclick="return flexi_submit('cancel', 'flexi_form_submit_btns', 'flexi_form_submit_msg')">
    				<span class="fcbutton_cancel">Annuler</span>
    			</button>
     
    		</div>
     
    		<br class="clear">
    		<input type="hidden" name="c312dd98d5a1c677d942c10848574472" value="1">		<input type="hidden" name="task" id="task" value="">
    		<input type="hidden" name="option" value="com_flexicontent">
    		<input type="hidden" name="referer" value="...">
    					<input type="hidden" name="jform[type_id]" value="6">
    				<input type="hidden" name="jform[id]" id="jform_id" value="0" class="readonly">		
    				<input type="hidden" name="jform[submit_conf]" value="cd6b3ddb2f933c48e535751662116ae9">		
    		<input type="hidden" name="unique_tmp_itemid" value="_2019_06_21_09_09_00_15d0c828cc5d0e">
     
    	</form>

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    Bonjour,
    avant de continuer je te propose de corriger ton code HTML qui est plein d'erreur.

    Pour tester :
    Validator

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 143
    Par défaut
    hello merci pour ton retours .. oui je me doute ce n'est qu'un extrait j'ai essayer de le nettoyer pour qu'il soit moins long ... le formulaire en soit fonctionne

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    Quoiqu'il en soit, toujours travailler sur un code HTML conforme pour éviter les mauvaises surprises.

    Ce que je te propose est de commencer à voir ce que tu obtiens avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    const elements = $('[name^="custom[type-de-fiche-annuaire][0]"]'); // pourrait être simplifié mais bon ..!
    console.log( "elements" ,elements);
    et à partir de là tu pourras utiliser ton each.

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

Discussions similaires

  1. afficher champs formulaire en fonction d'un bouton radio
    Par pod1978 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 02/04/2009, 11h50
  2. Réponses: 3
    Dernier message: 05/06/2007, 23h44
  3. Comment charger un formulaire en fonction d'un bouton radio
    Par FredKéKé dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 31/01/2006, 13h14
  4. Réponses: 6
    Dernier message: 11/10/2004, 14h58
  5. Afficher initialiser la fenetre en fonction de l'ecran
    Par gazzall dans le forum C++Builder
    Réponses: 2
    Dernier message: 19/04/2004, 11h30

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