Chosen

Chosen est une librairie Javascript permettant de rendre plus simples d’usage les éléments select et notamment ceux permettant de sélectionner plusieurs valeurs dans un formulaire.

À partir de SPIP4 ce plugin n’est plus maintenu et il est conseillé d’utiliser Select2 à la place.

Ce plugin permet de modifier l’apparence et l’usage d’éléments select de formulaires en fonction de sa configuration.

Configuration du plugin

Sa configuration est relativement simple, il est simplement demandé de l’activer ou non dans l’espace public et de remplir l’input correspondant au sélecteur CSS sur lequel l’appliquer.

Dans l’image ci-dessous (issu de trad.spip.net), on l’applique sur les sélecteurs de langues ayant pour « id » « langues_choisies » et « langues_preferees ».

Si vous souhaitez l’applique à tout élément select de formulaires, il suffit d’indiquer select. Pour les select multiple, on indiquera select[multiple].

Dans vos squelettes ou autre développements

Si vous ne souhaitez pas utiliser la configuration du sélecteur CSS, tout élément select ayant la class CSS .chosen sera automatiquement modifié.

Exemple d’utilisation

Ce plugin est activé sur le site « Traduire SPIP » notamment sur sa page « Bilan » afin de modifier la liste des langues affichées.

Discussion

4 discussions

  • Salut,

    merci pour le portage sur SPIP, c’est un réel gain d’ergonomie !

    J’essaie d’utiliser les options de chosen, notamment allow_single_deselect : true (cf https://harvesthq.github.io/chosen/#allow-deselect-on-single-selects) mais je n’arrive pas à les faire fonctionner.

    J’ai tenté $(« .mon_select »).chosen(allow_single_deselect : true) ; mais ça ne fonctionne pas, sans doute car il est déclencher par ailleurs par le plugin.

    Comment on ajoute ces options ?

    Répondre à ce message

  • Bonjour,

    magnifique ce « chosen »,
    il me manquerait une recherche qui omette les accents (par ex. qui permette de trouver le mot « maître » en tapant « mai »...)
    il y a ici une évolution de chosen dans ce sens, est-il prévu/possible d’utiliser cette version ?
    https://github.com/harvesthq/chosen/pull/2523

    Merci !

    Répondre à ce message

  • 1

    Bonjour,

    J’utilise ce magnifique plugin mais il y a une chose(n) que je n’arrive pas à faire fonctionner avec le plugin spip.

    Pour des saisies que j’ai créées, j’ai ajouté une classe « .chosen » aux select, marche nickel.

    Maintenant je voudrai ajouter chosen à quelques select du back-office, en l’occurrence ceux qui permettent d’ajouter des mots-clés à un article, mais pas à tous, donc ma seule solution est d’ajouter des sélecteurs genre « select#ajouter_lien-groupe13 » pour cibler le select d’un groupe de mots spécifique ... donc dans les réglages de chosen, dans « Sélecteur » j’ai par ex. « select.chosen,select#ajouter_lien-groupe13 » . Marche pas, comprend pas pourquoi.

    J’ai essayé de modifier l’ordre de ma liste, idem.

    J’ai été même modifier mots_associer-select.html du plugins-dist/mots pour lui ajouter une classe « chosen » et là ça marche, sauf que ça me met chosen partout, ce que je ne voulais pas ...

    Là je vois vraiment pas pkoi ce truc simple ne marche pas ...

    Une idée ?

    PS : un peu en lien avec l’autre question : j’ai du jquery entre 2 saisies pour qu’un premier choix dans un 1er select positionne automatiquement une option correspondante dans un second select, j’ai pour l’instant été obligé d’enlever chosen, le second select était bien positionné en valeur mais pas visuellement, j’ai essayé d’utiliser chosen:updated, marche pas, enfin, j’y arrive pas.

    • Ce ne serait pas quelque chose comme select.chosen,#id_groupe_x
      (j’ai eu le même besoin, j’ai cherché, j’ai trouvé : pour moi cela fonctionne)

      dd

    Répondre à ce message

  • 1

    Bonjour,

    Je suis passé à Chosen pour son utilisation dans mon back-office.

    Avant j’utilisait un javascript pour récupérer la valeur sélectionner d’un select et l’appliquer sur d’autres select

    Par exemple si j’ai

    <form id="mon_formulaire">
    <select id="structure_livraison" onChange="mafonction();>
    <option value="1">structure 1</option>
    <option value="2" selected="selected">Structure 2</option>
    </select>
    
    <!-- et un peu plus bas -->
    <select id="structure_facturation">
    <option value="1">structure 1</option>
    <option value="2">structure 2</option>
    </select>
    </form>

    Comment puis-je, en javascript ou jquery, selectionner automatiquement la valeur de mon #structure_facturation à partir de la valeur de mon #structure_livraison ?

    Avant j’avais en javascript :

    <script language="JavaScript">
    function mafonction() {
    var structure_livraison = document.forms.mon_formulaire.structure_livraison.value;
    document.forms.mon_formulaire.structure_facturation.value = structure_livraison;
    </script>

    Et maintenant que j’utilise chosen pour mes select, ça ne marche plus. Comment puis-je faire la même chose avec chosen ? (en javascript ou jquery) ?

    • Je me répond à moi-même, pour si d’autre ont ce problème :

       function mafonction() {
              var livraison = $('#structure_livraison') .chosen() .val();
      	$('#structure_facturation') .val(beneficiaire);
      	$('#id_structure_facturation') .trigger('liszt:updated');
      }

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom