Pour mes sélections les plus importantes, la zone de recherche de Select2 est merveilleuse. Cependant, dans un cas, j'ai une simple sélection de 4 choix codés en dur. Dans ce cas, la zone de recherche est superflue et semble un peu idiote d'être présente. Est-il possible de le cacher d'une manière ou d'une autre? J'ai jeté un œil à la documentation en ligne et je n'ai trouvé aucune option pour cela dans le constructeur.
Je pourrais, bien sûr, simplement utiliser une sélection html régulière, mais pour des raisons de cohérence, j'aimerais utiliser Select2 si possible.
jquery
jquery-select2
EleventyOne
la source
la source
hide
méthode est décrite ici: api.jquery.com/hide Tant que vous ne l'appliquez qu'au sélecteur approprié, oui, elle doit masquer la zone de recherche seule. Néanmoins, il existe des méthodes spécifiques au plugin qui peuvent être utilisées pour le masquer, que je vous recommande d'utiliser à la place (voir ci-dessous).Réponses:
Voir ce fil https://github.com/ivaynberg/select2/issues/489 , vous pouvez masquer la zone de recherche en définissant minimumResultsForSearch sur une valeur négative.
la source
Infinity
n'est pas une valeur négative. Votre modification fait que le texte et le code ne correspondent pas. Le problème lié à indique spécifiquement qu'une valeur négative est la bonne approche prise en charge. Le problème lié à affirme également "La valeur élevée de minimumResultsForSearch masque uniquement la boîte de recherche dans la sélection ouverte. Mais si nous tapons une lettre pendant que la sélection est fermée et ciblée - la recherche apparaîtra, quelle que soit la hauteur" et bien que je ne puisse pas reproduire ce problème particulier dans la version actuelle, il est probable que ce soit un vrai problème dans les anciennes versions. Pour ces raisons, j'ai annulé votre modification.C'est sur leur page d'exemples: https://select2.org/searching#hiding-the-search-box
la source
la source
Version 4.0.3
Essayez de ne pas mélanger les exigences de l'interface utilisateur avec votre code JavaScript.
Vous pouvez masquer la zone de recherche dans le balisage avec l'attribut:
data-minimum-results-for-search="Infinity"
Marquage
Exemple
la source
Supprimer les entrées avec jQuery fonctionne pour moi:
la source
C'est la meilleure solution, propre et fonctionne bien:
Ensuite, créez une classe
.hidden { display;none; }
la source
Si vous souhaitez masquer la recherche d'une liste déroulante spécifique, utilisez l'attribut id pour cela.
la source
Si la sélection est afficher les résultats, il faut utiliser ceci:
il ferme la boîte de résultats de recherche, puis rend le contrôle invisible
la source
J'aime le faire dynamiquement en fonction du nombre d'options dans la sélection; pour masquer la recherche de sélections avec 10 résultats ou moins, je fais:
la source
la source
la source
Si vous avez plusieurs attributs dans votre sélection, ce hack sale fonctionne:
voir les documents ici https://select2.org/searching#limiting-display-of-the-search-box-to-large-result-sets
la source
Si vous souhaitez masquer lors de l'ouverture initiale et que vous remplissez la liste déroulante via l'appel ajax, ajoutez ce qui suit au bloc ajax dans votre déclaration select2:
Pour ensuite l'afficher à nouveau (et vous concentrer) une fois votre demande ajax réussie:
la source
Vous pouvez essayer ceci
il ferme la boîte de résultats de recherche, puis rend le contrôle invisible
Vous pouvez vérifier ici dans select2 document select2 documents
la source
La réponse de @Misha Kobrin fonctionne bien pour moi J'ai donc décidé de l'expliquer davantage
Vous souhaitez masquer la boîte de recherche, vous pouvez le faire par jQuery.
par exemple, vous avez initialisé le plugin select2 sur une liste déroulante ayant un public id
L'exemple fonctionne sur tous les appareils sur lesquels select2 fonctionne.
la source
J'ai modifié le
select2.min.js
fichier pour définir leselect-2__search
champ d'entrée qui est généréreadonly="true"
.la source
Pour la multisélection, vous devez écrire du code js, il n'y a pas de propriété settings.
Ceci mentionné sur leur page: https://select2.org/searching#multi-select
la source
essayez ce CSS
cette entrée est le champ de recherche
la source