Comment ouvrir Choisis via JavaScript?

Je dois ouvrir le menu déroulant Choisi via JavaScript pour que les utilisateurs ne doivent pas cliquer sur le sélectionner pour le montrer, comment cela peut-il être fait?

  • Possibilité de désactiver les requêtes @media ou de forcer une résolution? Motif: Permettre à un iphone de voir le site du bureau?
  • Partager des données entre les pages html
  • Fenêtre contextuelle toujours en haut
  • OnChange et onSelect dans DropDownList
  • Utilisation de JavaScript pour manipuler les éléments d'entrée HTML (case à cocher) via le type au lieu du nom
  • Formatage de la date avec Javascript
  • Récupérer le texte de l'option <option> sélectionnée dans l'élément <select>
  • Youtube - icône de jeu personnalisé
  • Comment enquêter sur le nombre de fois qu'un navigateur effectue des reflections?
  • Obtenir un élément à la position spécifiée - JavaScript
  • Les scripts peuvent-ils être insérés avec innerHTML?
  • JQuery html () vs. innerHTML
  • 6 Solutions collect form web for “Comment ouvrir Choisis via JavaScript?”

    Vous pouvez ouvrir une boîte de sélection sélectionnée via JS en effectuant:

    $('#<id-of-your-select>_chzn').trigger('mousedown'); 

    <id-of-your-select> est l'identifiant de votre élément <select> .

    Par ex: si votre élément <select> est comme <select id="foo" ...> , le code ci-dessus deviendra:

     $('#foo_chzn').trigger('mousedown'); 

    C'est très étrange mais je trouve que la réponse utilise le délai d'attente

    D'une certaine façon, il ne faut pas attendre d'abord parce que mon élément est cloné, j'espère utile pour les autres

     setTimeout(function(){ firstElement.trigger("chosen:open"); }, 100); 

    Vous pouvez ajouter les deux lignes ci-dessous à votre code, il tiendra votre choix toujours ouvert. Cela a fonctionné pour moi.

    list_start est votre identifiant d'élément sélectionné.

     ("#list_start").trigger('chosen:open'); $('.chosen-drop').css('left', 0); 

    La réponse de @ tzvi est précieuse dans le cas où vous essayez de déclencher choisi afin qu'il reste ouvert après la sélection (IE: faire plusieurs sélections en une seule fois). Permettez-moi d'étendre cela un peu (mis à jour pour choisis 1.0, au fait):

     $('#selectbox').change(function() { $('#selectbox_chosen .chosen-drop').css('left', '0'); }); $('html').click(function() { $('#selectbox_chosen .chosen-drop').css('left', ''); }); $('#selectbox_chosen .chosen-drop').click(function(e) { e.stopPropagation(); }); 

    Essentiellement, cela oblige le menu déroulant choisi à rester ouvert en remplaçant certains css qui sont généralement en place par la classe "active". Ensuite, nous avons quelques événements de clic qui vont annuler ceci si vous cliquez n'importe où en dehors de la liste déroulante. J'ai travaillé parfaitement pour moi.

    Edit: Soit dit en passant, si vous voulez vraiment déclencher la liste déroulante via JS, utilisez l'API de Chosen 1.0:

     $('#selectbox').trigger('chosen:open') 

    Dans le contexte de la question initiale, cela vous permettra d'ouvrir la boîte ou de rouvrir la boîte après la sélection. Cependant, il ne sera pas possible de garder la boîte après une sélection (sans fermer pour un moment).

    Dans le plugin Chqueré jquery mis à jour, cela fonctionne bien avec stopPropagation.

     $("#selectbox").trigger("chosen:open"); event.stopPropagation(); 

    Cela résout le problème,

    Assurez-vous simplement que chzn-select est l'ID de votre choix.

    Chzn-drop restera ouvert après que les utilisateurs cliquent sur une option:

      $('#chzn-select').change(function(event) { $('.chzn-drop').css('left', 0); }); 
    JavaScript rend le site Web intelligent, beauté et facile à utiliser.