A voir également:
- Select amelioration jquery
- Please select boot device - Forum Windows 7
- Reboot and select proper boot device or insert boot media in selected boot device and press a key ✓ - Forum Windows 10
- Reboot and select proper boot device ✓ - Forum PC portable
- Reboot and select proper boot device - Forum Windows
- Problème reboot and select proper boot device + clavier - Forum PC fixe
4 réponses
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
526
19 août 2016 à 12:50
19 août 2016 à 12:50
Salut,
Effectivement lors que clique sur l'élément .hida1 tu vas appeler l'ouverture/fermeture du slide (toggleSlide) sur le sélecteur css ".mutliSelect1 ul", c-a-d tout les éléments ul contenu dans un élément dont la classe est multiSelect1.
Puisque tes deux select corresponde a ce sélecteur, il s'ouvre donc tout les deux.
Pour corriger ceci il faut donc modifier le sélecteur pour n'appliquer le toggleSlide uniquement sur le select concerné.
On peut faire comme ceci :
Explications :
- $(this) dans cette fonction correspond à l'élément cliqué (ici .hida1)
- $(this).parent() correspond à l'élément parent de l'élément cliqué (donc l'élément parent de .hida1, ici il s'agit de l'élément <dl class="dropdown multiple-choix">)
- $(".mutliSelect1 ul", $(this).parent()) correspond à l'élément ".mutliSelect1 ul" qui est dans $(this).parent(), c-a-d le select contenu dans l'élément parent de l'élément cliqué, autrement dit le select à coté de l'élément cliqué
Pour l'affichage des valeurs sélectionnées, une solution serait de créer un nouvel élément à l'endroit où tu souhaites afficher ces valeurs et de modifier le sélecteur de l'élément sur lequel tu affiches ces valeurs (ligne 10 dans le jsfiddle) :
Bonne journée,
Effectivement lors que clique sur l'élément .hida1 tu vas appeler l'ouverture/fermeture du slide (toggleSlide) sur le sélecteur css ".mutliSelect1 ul", c-a-d tout les éléments ul contenu dans un élément dont la classe est multiSelect1.
Puisque tes deux select corresponde a ce sélecteur, il s'ouvre donc tout les deux.
Pour corriger ceci il faut donc modifier le sélecteur pour n'appliquer le toggleSlide uniquement sur le select concerné.
On peut faire comme ceci :
$(document).delegate(".hida1","click",function(){ $(".mutliSelect1 ul", $(this).parent()).slideToggle('500'); });
Explications :
- $(this) dans cette fonction correspond à l'élément cliqué (ici .hida1)
- $(this).parent() correspond à l'élément parent de l'élément cliqué (donc l'élément parent de .hida1, ici il s'agit de l'élément <dl class="dropdown multiple-choix">)
- $(".mutliSelect1 ul", $(this).parent()) correspond à l'élément ".mutliSelect1 ul" qui est dans $(this).parent(), c-a-d le select contenu dans l'élément parent de l'élément cliqué, autrement dit le select à coté de l'élément cliqué
Pour l'affichage des valeurs sélectionnées, une solution serait de créer un nouvel élément à l'endroit où tu souhaites afficher ces valeurs et de modifier le sélecteur de l'élément sur lequel tu affiches ces valeurs (ligne 10 dans le jsfiddle) :
var span = $("...");
Bonne journée,
merci, juste une question
https://jsfiddle.net/e2vpdL7j/
quand j'ouvre un select il m'ouvre bien
mais si je réouvre le 2 eme select il ne ferme pas mon premier select il reste ouvert
ensuite
pour afficher à côté du select
j'ai pensé mettre
là le souci il m'efface tout les select
ensuite j'ai un autre souci
merci
https://jsfiddle.net/e2vpdL7j/
quand j'ouvre un select il m'ouvre bien
mais si je réouvre le 2 eme select il ne ferme pas mon premier select il reste ouvert
ensuite
pour afficher à côté du select
j'ai pensé mettre
//variables var span = $("dl"); var string = ' ';
là le souci il m'efface tout les select
ensuite j'ai un autre souci
merci
bonjours j'ai retester
donc j'ai modifier
html
donc on affiche les mots <p class="choix"><span></span></p>
et dans js
il ne veux pas m'afficher
merci
donc j'ai modifier
html
<dl class="dropdown"> <dt class="hida1">select<span></span></dt> <dd><nav class="mutliSelect1"><ul> <li><p><input type="checkbox" id="Apple" name="Apple" value="Apple" /><label for="Apple">Apple</label></p></li> <li><p><input type="checkbox" id="Blackberry" name="Blackberry" value="Blackberry" /><label for="Blackberry">Blackberry</label></p></li> <li><p><input type="checkbox" id="HTC" name="HTC" value="HTC" /><label for="HTC">HTC</label></p></li> <li><p><input type="checkbox" id="Sony Ericson" name="Sony Ericson" value="Sony Ericson" /><label for="Sony Ericson">Sony Ericson</label></p></li> <li><p><input type="checkbox" id="Motorola" name="Motorola" value="Motorola" /><label for="Motorola">Motorola</label></p></li> <li><p><input type="checkbox" id="Nokia" name="Nokia" value="Nokia" /><label for="Nokia">Nokia</label></p></li> </ul></nav></dd> </dl><p class="choix"><span></span></p>
donc on affiche les mots <p class="choix"><span></span></p>
et dans js
//variables var p = $(".choix span"); var string = 'Select ';
il ne veux pas m'afficher
merci
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
526
24 août 2016 à 09:14
24 août 2016 à 09:14
Ton sélecteur semble correct. A partir de ton premier code, il faut bien modifier la ligne
Peut tu stp nous montrer ton code js entier ou nous donner le lien du jsfiddle mis à jour ?
span.html(newstring);par
p.html(newstring);.
Peut tu stp nous montrer ton code js entier ou nous donner le lien du jsfiddle mis à jour ?
bonjours j'ai un peut modifier le code
https://jsfiddle.net/pqobmyeh/
là il m'affiche ben le mot à côté meme là si c'est pas bien présenté
mais le souci quand tu coche choix 1 il le met sur les autres selec malgrez que j'ai mis un id différent id="choix 5" etc...
ensuite quand tu ouvre le 1 er select et si tu ouvre le 2 eme select il oublie de fermer le 1 er select
et après je crois que c'est finit pour le select multple choix
j'ai tester pour un choix simple
là si je choisit choix 1, il m’efface bien le mot select et si je décoche il remet pas le mot select et là il faudra choisir un choix et non plussieur choix peut ete il faudra supprimer les type radio dans le cas des choix simple
je te met un exemple sur le lien
https://jsfiddle.net/pqobmyeh/1/
https://jsfiddle.net/pqobmyeh/
là il m'affiche ben le mot à côté meme là si c'est pas bien présenté
mais le souci quand tu coche choix 1 il le met sur les autres selec malgrez que j'ai mis un id différent id="choix 5" etc...
ensuite quand tu ouvre le 1 er select et si tu ouvre le 2 eme select il oublie de fermer le 1 er select
et après je crois que c'est finit pour le select multple choix
j'ai tester pour un choix simple
<dl class="dropdown multiple-choix"> <dt class="hida1"><p class="choix_membre"><span>Sélect</span></p></dt> <dd><nav class="mutliSelect1"><ol> <li><p><input type="checkbox" id="choix 1" name="choix 1" value="choix 1" /><label for="choix 1">choix 1</label></p></li> <li><p><input type="checkbox" id="choix 2" name="choix 2" value="choix 2" /><label for="choix 2">choix 2</label></p></li> <li><p><input type="checkbox" id="choix 3" name="choix 3" value="choix 3" /><label for="choix 3">choix 3</label></p></li> <li><p><input type="checkbox" id="choix 4" name="choix 4" value="choix 4" /><label for="choix 4">choix 4</label></p></li> </ol></nav></dd></dl>
là si je choisit choix 1, il m’efface bien le mot select et si je décoche il remet pas le mot select et là il faudra choisir un choix et non plussieur choix peut ete il faudra supprimer les type radio dans le cas des choix simple
je te met un exemple sur le lien
https://jsfiddle.net/pqobmyeh/1/
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
526
25 août 2016 à 14:59
25 août 2016 à 14:59
Concernant ton dernier commentaire :
quand tu coche choix 1 il le met sur les autres selec malgrez que j'ai mis un id différent id="choix 5" etc...
Pour que le choix de l'utilisateur d'affiche uniquement dans le select ou la case est cochée, il faut modifier le sélecteur où on affiche ce choix afin de ne sélectionner que le select concerné (dans ton code il s'agit de l'élément .hida1 span).
A partir de ton dernier jsfiddle, on peut utiliser le sélecteur suivant :
Oui la suite de .parent() un peu moche vient du fait que l'événement onchange est appliqué sur l'input checkbox. Pour récupérer l'élément .hida1 span du select où la checkbox est coché, il faut donc remonter tout les éléments parent à partir de cette checkbox (les éléments p, li, ol, nav, dd et dl).
Le même principe est utilisé pour récupérer la liste des checkbox cochées afin de ne pas afficher tous les choix dans tous les selects.
ensuite quand tu ouvre le 1 er select et si tu ouvre le 2 eme select il oublie de fermer le 1 er select
Pour fermer les autres select à l'ouverture de l'un d'entre eux, on peut ajouter la ligne suivante dans la fonction qui gère le clique sur .hida1 :
-> on ferme (slideUp) tous les selects sauf celui cliqué (not($(".mutliSelect1 ol", $(this).parent())))
On peut simplement vérifier si la chaine est vide avant de l'afficher, et si c'est le cas ajouter "Select" dans cette chaine :
Le jsfiddle mis à jour : https://jsfiddle.net/pqobmyeh/2/
Enfin dans le cas d'un choix unique, une liste d'input de type radio ou une vrai balise html <select> peuvent effectivement être utilisées.
quand tu coche choix 1 il le met sur les autres selec malgrez que j'ai mis un id différent id="choix 5" etc...
Pour que le choix de l'utilisateur d'affiche uniquement dans le select ou la case est cochée, il faut modifier le sélecteur où on affiche ce choix afin de ne sélectionner que le select concerné (dans ton code il s'agit de l'élément .hida1 span).
A partir de ton dernier jsfiddle, on peut utiliser le sélecteur suivant :
var p = $(".hida1 span", $(this).parent().parent().parent().parent().parent().parent());
Oui la suite de .parent() un peu moche vient du fait que l'événement onchange est appliqué sur l'input checkbox. Pour récupérer l'élément .hida1 span du select où la checkbox est coché, il faut donc remonter tout les éléments parent à partir de cette checkbox (les éléments p, li, ol, nav, dd et dl).
Le même principe est utilisé pour récupérer la liste des checkbox cochées afin de ne pas afficher tous les choix dans tous les selects.
ensuite quand tu ouvre le 1 er select et si tu ouvre le 2 eme select il oublie de fermer le 1 er select
Pour fermer les autres select à l'ouverture de l'un d'entre eux, on peut ajouter la ligne suivante dans la fonction qui gère le clique sur .hida1 :
$(document).delegate(".hida1","click",function(){ $(".mutliSelect1 ol").not($(".mutliSelect1 ol", $(this).parent())).slideUp('500'); // fermer les autres select $(".mutliSelect1 ol", $(this).parent()).slideToggle('500'); // ouverture du select });
-> on ferme (slideUp) tous les selects sauf celui cliqué (not($(".mutliSelect1 ol", $(this).parent())))
si je décoche il remet pas le mot select
On peut simplement vérifier si la chaine est vide avant de l'afficher, et si c'est le cas ajouter "Select" dans cette chaine :
newstring = string.substring(0,string.lastIndexOf(',')); if (newstring == '') { newstring = 'Select'; } p.html(newstring);
Le jsfiddle mis à jour : https://jsfiddle.net/pqobmyeh/2/
Enfin dans le cas d'un choix unique, une liste d'input de type radio ou une vrai balise html <select> peuvent effectivement être utilisées.
juste une question
quand on coche un choix là il se met dans le select sur .hida1 span
mais si je veux afficher sur <p class="choix_membre"><span></span></p>
donc j'ai mis .hida1 span, .choix_membre p ou .hida1 span, .choix_membre span
là il ne veux pas affiche sur la class choix_membre
je mettrait affichage du choix soit sur la class hida1 ou soit choix_membre
après ca sera tout
quand on coche un choix là il se met dans le select sur .hida1 span
mais si je veux afficher sur <p class="choix_membre"><span></span></p>
donc j'ai mis .hida1 span, .choix_membre p ou .hida1 span, .choix_membre span
là il ne veux pas affiche sur la class choix_membre
je mettrait affichage du choix soit sur la class hida1 ou soit choix_membre
après ca sera tout
un petit up car j'ai tester mais il n’apparaît pas dans ma class choix membre
merci
peut etre
il faut rajoute en sous une clss choix_membre
come ca on affiche choix_membre ou soit hida1
je penses ca mais ça n'a rien changer ca n'aparait pas ;)
merci
merci
peut etre
//variables var p = $(".hida1 span",
il faut rajoute en sous une clss choix_membre
come ca on affiche choix_membre ou soit hida1
// on affiche le mot pour choisir un choix var p = $(".hida1 span", // là on affiche sur cette class plussieur choix var p = $(".choix_membre span",
je penses ca mais ça n'a rien changer ca n'aparait pas ;)
merci