Menu

Apparaître un input lors du clik sur autre [Résolu]

- - Dernière réponse :  vanesa - 9 avril 2019 à 21:30
Bonjour,

par exemple j'ai ce code

	  <ul id="global-annonce-type">
	  <li><input type="radio" id="annonce" name="nouveau-type" /><label for="annonce"><span></span>annonce</label></li>
	  <li><input type="radio" id="topic" name="nouveau-type" /><label for="topic"><span></span>topic</label></li>
	  
	  <li><input type="radio" id="topic" name="nouveau-type" /><label for="autre"><span></span>autre</label></li>
	  </ul>



j'aimerais lors du click sur le button type radio autre , il me feras apparaître un input

mais si je click sur input type annonce ou topic , l'input sera cacher

comment, je dois faire apparaître un input lors du click uniquement sur autre


merci





Configuration: Windows / Chrome 73.0.3683.103
Afficher la suite 

Votre réponse

1 réponse

Messages postés
295
Date d'inscription
lundi 4 juillet 2016
Statut
Membre
Dernière intervention
10 avril 2019
25
0
Merci
Juste pour savoir intègres-tu du Jquery dans tes pages web ?
tpez
Messages postés
295
Date d'inscription
lundi 4 juillet 2016
Statut
Membre
Dernière intervention
10 avril 2019
25 -
Dans ce cas, voici le code (il se peut que tu ais besoin de faire quelques modifications pour coller à ce que tu veux faire) /!\Fais attention tu as oublié de changer l'id de ta troisième input (tu as deux fois l'id "autre" :
$('#autre').on('click', function(){
    if( $(this).is(':checked') ){
        $(this).after("<input type='text' class='nouvel-input-genere' name='nouvel-input-genere'> ");
    }else{
        $('.nouvel-input-genere').remove();
    }
});


Si ça ne fonctionne pas (parceque je n'ai pas vérifié) ou que tu à un autre problème, dis le moi et je reviendrai t'aider en ayant testé au préalable ; ) .
merci, je vais tester des que j'aurais refait la page

je te tiendrais au courant
je viens tester

il fonctionne bien , il m'affiche l'input lors du 1 er click.

mais, il faudrait évité de mettre input à chaque fois qu'on click

et le mot autre il faut laisser à côté du input type radio car là il se met à droite de l'input

je ne sais pas si tu peux cliquer sur le lien afin de tester

https://jsfiddle.net/jdhc3auf/

je t'en remerci
tpez
Messages postés
295
Date d'inscription
lundi 4 juillet 2016
Statut
Membre
Dernière intervention
10 avril 2019
25 -
Je me suis permis de modifier un peu mon précédent code pour gérer correctement l'input, ainsi que ton code html :
LE HTML :
<ul id="global-annonce-type">
   <li><input type="radio" id="annonce" name="nouveau-type" /><label for="annonce"><span></span>annonce</label></li>
   <li><input type="radio" id="topic" name="nouveau-type" /><label for="topic"><span></span>topic</label></li>
   
   <li><input type="radio" id="autre" name="nouveau-type" /><label for="autre"><span></span>autre</label></li>
    
    <li><input type='text' class='nouvel-input-genere' name='nouvel-input-genere'></li>
   </ul>


Le JS
$('input[name=nouveau-type]').on('click', function(e){
    if ($(e.target).is("#autre")){
     $('.nouvel-input-genere').fadeIn();
    }else{
     $('.nouvel-input-genere').fadeOut();
    }
});
Ma modification permet de gérer la disparition si l'on reclic sur une autre input

LE CSS :
.nouvel-input-genere {
  display: none;
}


Je souhaite également te préciser que tu peux faire exactement la même chose sans JS juste avec du CSS, personnellement je privilégierai la méthode CSS cela permettrait que les navigateurs n'exécutant pas le JS ait quand même le même résultat. Si tu veux que je te montre comment faire, dis le moi et je te montrerai.
merci, j'ai mis liste style none pour cacher les puces

merci d'avance
Commenter la réponse de tpez