Maison > interface Web > js tutoriel > JQUERY SELECT COMPONNANTS BOX - Chosenment vs Select2

JQUERY SELECT COMPONNANTS BOX - Chosenment vs Select2

Christopher Nolan
Libérer: 2025-02-18 11:39:13
original
444 Les gens l'ont consulté

JQUERY SELECT COMPONNANTS BOX - Chosenment vs Select2

Cet article a été revu par des pairs par Martín Martínez et Chris Perry. Merci à tous les pair examinateurs de SitePoint pour avoir fait du contenu SitePoint le meilleur possible!

Avez-vous déjà travaillé sur un projet, et il semblait que quelque chose était désactivé visuellement? Peut-être que le projet était presque terminé, mais certains éléments n'étaient pas si bons? Ce sont peut-être de petits détails, mais ils font une différence.

Si votre projet contient des boîtes de sélection peu attrayantes et que vous souhaitez y ajouter plus de fonctionnalités, vous trouverez choisi et sélectionnez2 très utile. Ce sont deux plugins jQuery qui aident à styliser vos boîtes de sélection pour améliorer leur apparence, personnaliser leur comportement et les rendre plus conviviaux.

Dans cet article, je mettrai ces deux plugins en tête-à-tête et comparerai leurs fonctionnalités et leurs cas d'utilisation, afin que vous puissiez faire un choix éclairé quant à ce qui vous convient le mieux.

Les plats clés

  • Chosen et Select2 sont des plugins jQuery qui améliorent les fonctionnalités de sélections, améliorant leur apparence et leur convivialité. Bien que choisi est un plugin fiable et robuste, il n'est pas aussi activement maintenu que Select2, qui ajoute régulièrement de nouvelles fonctionnalités et intégrations.
  • Les deux plugins prennent en charge le texte d'espace réservé, permettez la recherche dans les options et offrent la possibilité de limiter le nombre de sélections. Cependant, Select2 offre également l'option de désélectionner les options lorsque la liste déroulante est ouverte, une fonctionnalité non encore implémentée dans le choix.
  • select2 se démarque avec ses fonctionnalités supplémentaires, y compris l'accès programmatique, le marquage, la tokenisation et les modèles. Il prend également en charge l'Ajax et propose des options de personnalisation plus avancées, ce qui en fait un outil plus puissant pour sélectionner des boîtes.
  • Bien que choisi est une bonne option pour l'amélioration de la boîte de base de base, SELECT2 est recommandé pour des fonctionnalités plus avancées et des mises à jour régulières. SELECT2 offre également une documentation complète, ce qui facilite la mise en œuvre et l'utilisation dans les projets.

Installation

Les deux choisis et Select2 sont disponibles via GitHub. Cela signifie que vous pouvez cloner le référentiel respectif et obtenir les fichiers dont vous avez besoin.

<span>git clone https://github.com/harvesthq/chosen.git
</span><span>git clone https://github.com/select2/select2.git
</span>
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

Sinon, vous pouvez installer les deux plugins avec Bower (qui sert d'interface à GitHub). Si Bower est votre itinéraire préféré, vous pourriez aussi bien saisir jQuery pendant que vous y êtes.

bower <span>install jquery
</span>bower <span>install select2
</span>bower <span>install chosen
</span>
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

Sinon, saisissez les fichiers de votre CDN de choix (par exemple CDNJS) et incluez-les dans votre page de la manière habituelle. C'est ce que j'ai fait dans les modèles ci-dessous auxquels vous pouvez l'utiliser pour suivre les exemples du tutoriel.

choisi

<span>git clone https://github.com/harvesthq/chosen.git
</span><span>git clone https://github.com/select2/select2.git
</span>
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

select2

bower <span>install jquery
</span>bower <span>install select2
</span>bower <span>install chosen
</span>
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

Les projets sont-ils activement maintenus?

Comme vous pouvez le voir en visitant la page ITS GitHub, le développement du plugin choisi n'est pas aussi actif qu'il l'a été et la version la plus récente des dates choisies du 6 février 2014. Cela ne veut pas dire que la bibliothèque a été abandonné - loin de là! Les développeurs l'ont plutôt mis à l'endroit où ils le souhaitent et il reste un plugin fiable et robuste.

contraste que avec Select2, d'autre part, et la différence est perceptible. Le développement de cette bibliothèque va de la vapeur et il a récemment publié sa quatrième version officielle (4.0.0). Cela signifie que de nouvelles fonctionnalités sont ajoutées, tandis que d'autres sont obsolètes et / ou supprimées.

Une autre métrique utile pourrait être la quantité de questions avec ces balises sur le débordement de pile. Vous pouvez essayer ceci par vous-même ici: http://stackoverflow.com/tags

Si vous tapez "SELECT2", puis contrastez ce "choisi", vous verrez qu'il semble y avoir beaucoup plus d'activité autour du plugin Select2. Vous verrez également qu'il a un certain nombre d'intégations, comme avec AngularJS et Ruby on Rails.

Sélectionnez des boîtes et des espaces réservés

select2 et choisi modifier la façon dont les cases simples et multiples apparaissent.

Dans plusieurs boîtes de sélection avec Pure HTML, les utilisateurs peuvent voir certaines des options disponibles dans la liste. Ce n'est pas visuellement attrayant et un changement doit être apporté à cette vue. Choisi et sélectionnez2 Supprimer la «Vistère de liste» et la liste des options apparaîtra lorsque vous cliquez sur la case Sélectionner. Ce n'est qu'alors que vous pouvez faire les sélections.

Vous pouvez rechercher vos options avec les deux plugins. Cliquez simplement dans la case, puis saisissez les premiers caractères de votre choix, puis les résultats apparaîtront en temps réel en fonction de votre recherche.

SELECT2 facilite la désélection des options qui ont déjà été sélectionnées. Lorsque la liste déroulante est ouverte, vous pouvez cliquer sur n'importe quel élément sélectionné pour les désélectionner. Choisi n'a pas encore implémenté cette fonctionnalité.

à la fois le texte choisi et SELECT2 Prise en charge du texte pour les boîtes de sélection unique et multiple.

Nombre limité de sélections

Parfois, dans une boîte de sélection multiple, vous devez limiter le nombre d'options sélectionnées par les utilisateurs. L'avantage de l'utilisation de Chosen et de Select2 est que vous pouvez modifier le nombre de sélections très facile.

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>Chosen/Select2 Template</title>
    <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/chosen/1.4.2/chosen.min.css">
  </head>
  <body>

    <script></script>
    <script src="//cdnjs.cloudflare.com/ajax/libs/chosen/1.4.2/chosen.jquery.min.js"></script>
    <script>// Additional logic goes here</script>
  </body>
</html>
Copier après la connexion
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>Select2 Template</title>
    <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.1/css/select2.min.css">
  </head>
  <body>

    <script src="https://img.php.cn/code.jquery.com/jquery-1.11.3.min.js"></script>
    <script src="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.1/js/select2.min.js"></script>
    <script>// Additional logic goes here</script>
  </body>
</html>
Copier après la connexion
Copier après la connexion
Copier après la connexion

Vous pouvez limiter le nombre de sélections qui peuvent être choisies à partir d'une boîte multi-sélection avec les deux plugins, bien qu'il convient de noter que la version de cette fonction de choisie est plus avancée. Après avoir atteint la limite, si vous essayez de sélectionner une option supplémentaire, un événement est appelé.

Dans cet exemple, les utilisateurs sont invités à sélectionner deux jours qui sont les plus productifs de leur semaine. Lorsqu'ils essaient de sélectionner un troisième jour, Chosen appellera un événement. J'ai réglé choisi pour ajouter une alerte montrant que la limite a été atteinte:

Voir le nombre de sélections Limited Nombre de sélections: choisi vs select2 by SitePoint (@SitePoint) sur codepen.

conception réactive

Les gens verront vos pages sur toutes sortes d'appareils afin de sélectionner les cases, comme les autres composants de votre site Web, devraient être réactives. La largeur du réglage de support choisi et SELECT2 avec un pourcentage et la fonctionnalité est presque la même pour les deux. Cela permet de créer des cases de sélection réactives qui tiennent compte de la taille de l'écran ou de la largeur de la fenêtre du navigateur.

La seule différence choisie et SELECT2 à propos de cette fonctionnalité est le code. Vous pouvez déclarer la largeur de Select2 dans la balise SELECT dans HTML. Voir-le ci-dessous pour comprendre à quel point est pratique de rendre les boîtes de sélection réactives et visuellement meilleures avec choisis et sélectionnés2.

<span>git clone https://github.com/harvesthq/chosen.git
</span><span>git clone https://github.com/select2/select2.git
</span>
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
bower <span>install jquery
</span>bower <span>install select2
</span>bower <span>install chosen
</span>
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>Chosen/Select2 Template</title>
    <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/chosen/1.4.2/chosen.min.css">
  </head>
  <body>

    <script src="https://img.php.cn/code.jquery.com/jquery-1.11.3.min.js"></script>
    <script src="//cdnjs.cloudflare.com/ajax/libs/chosen/1.4.2/chosen.jquery.min.js"></script>
    <script>// Additional logic goes here</script>
  </body>
</html>
Copier après la connexion
Copier après la connexion
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>Select2 Template</title>
    <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.1/css/select2.min.css">
  </head>
  <body>

    <script src="https://img.php.cn/code.jquery.com/jquery-1.11.3.min.js"></script>
    <script src="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.1/js/select2.min.js"></script>
    <script>// Additional logic goes here</script>
  </body>
</html>
Copier après la connexion
Copier après la connexion
Copier après la connexion

Autres fonctionnalités similaires

Chosen et SELECT2 ont d'autres fonctionnalités communes, mais je voudrais jeter un œil à trois fonctionnalités que j'ai trouvées intéressantes: résultats désactivés, boîte de recherche cachée et prise en charge de la droite à gauche (RTL).

Résultats désactivés

Le plus intéressant de ces résultats désactivés. Avec cette option définie, choisie et SELECT2 survient les options activées. Vous pouvez voir des choix désactivés, mais vous ne pouvez pas les sélectionner. Les résultats désactivés seraient normalement définis pour empêcher un utilisateur de sélectionner l'option jusqu'à ce qu'une autre condition soit remplie. Cette fonctionnalité transforme vos boîtes de sélection en un outil puissant et augmente l'engagement avec l'utilisateur si vous apprenez à l'utiliser en fonction de vos besoins.

Afin de faire savoir aux plugins que vous avez activé les résultats désactivés, ajoutez l'attribut désactivé = "Disabled" à la balise d'option où vous utiliserez cette fonction.

<span>max_selected_options: 2 // Chosen Plugin
</span>
Copier après la connexion

Dans cet exemple choisi, l'utilisateur ne peut sélectionner que des options disponibles dans leur emplacement géographique, mais ils peuvent également voir les autres options même si elles ne sont pas disponibles:

Voir le stylo choisi vs select2: Résultats désactivés par SitePoint (@SitePoint) sur Codepen.

cacher la boîte de recherche

Lorsque vous n'avez pas beaucoup de choix dans la liste des options dans des boîtes à sélection unique, il est conseillé de masquer la zone de recherche. Dans Chosen, pour masquer la zone de recherche, vous devez utiliser Disable_Search_Threshold et lui définir une valeur plus grande que le nombre d'options dans votre boîte de sélection.

<span>maximumSelectionLength: 2 // Select2 Plugin
</span>
Copier après la connexion
<!-- Chosen - HTML -->
<select >
  ...
</select>
Copier après la connexion

La même logique s'applique à Select2, mais le seul changement est la terminologie, au lieu de Disable_Search_Threshold, il est appelé minimumResultsForsearch.

<span>// Chosen - JavaScript
</span><span>$(".responsiveChosen").chosen({width: "50%"});
</span>
Copier après la connexion

Une chose que je devrais ajouter sur SELECT2 est que vous pouvez masquer la zone de recherche en permanence sans vous soucier du nombre d'options que vous avez dans votre boîte de sélection. Vous pouvez le faire en définissant MinimumResultsForsearch à Infinity.

<span>git clone https://github.com/harvesthq/chosen.git
</span><span>git clone https://github.com/select2/select2.git
</span>
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

Soutien droit à gauche (RTL)

Un grand nombre de sites Web sont écrits dans différentes langues avec différents alphabets et en dehors de cela, certaines de ces langues sont lues dans une autre direction. Il est conseillé de sélectionner les cases devraient s'ajuster avec les règles de ces langues et déplacer leur direction de LTR (gauche à droite) à RTL. Cela améliore l'expérience utilisateur et augmente la convivialité de votre site Web pour les utilisateurs de cette région.

à la fois choisi et SELECT2 Prise en charge de la technique de droite à gauche dans des boîtes de sélection. La seule différence qu'ils ont est que SELECT2 a besoin de vous pour déclarer la prise en charge RTL dans le fichier JavaScript, en attendant, vous avez simplement ajouté la classe choisie-RTL aux côtés de la classe choisie choisie dans HTML.

Pourquoi choisir Select2 sur choisi

Alors que SELECT2 a été inspiré par choisi et a la plupart des fonctionnalités de l'élu, ses contributeurs ne s'y sont pas arrêtés. Ils ont intégré certaines des fonctionnalités les plus cool pour sélectionner des boîtes, y compris l'accès programmatique, les modèles, le mode désactivé, le marquage et la tokenisation. Il prend également en charge l'Ajax.

Accès programmatique

L'accès programmatique prend des cases sélectionnées à un autre niveau. Ils sont très utiles combinés avec plusieurs boîtes de sélection. Vous pouvez ajouter des boutons qui agissent sur ces cases de sélection en fonction de vos règles à l'aide de JavaScript.

Si certaines des options de la boîte de sélection multiple ont une liaison logique entre elles et selon vos observations, ces options «liées» ont une grande probabilité à sélectionner parmi beaucoup d'utilisateurs, il est utile de les sélectionner Choix en un seul clic.

bower <span>install jquery
</span>bower <span>install select2
</span>bower <span>install chosen
</span>
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>Chosen/Select2 Template</title>
    <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/chosen/1.4.2/chosen.min.css">
  </head>
  <body>

    <script src="https://img.php.cn/code.jquery.com/jquery-1.11.3.min.js"></script>
    <script src="//cdnjs.cloudflare.com/ajax/libs/chosen/1.4.2/chosen.jquery.min.js"></script>
    <script>// Additional logic goes here</script>
  </body>
</html>
Copier après la connexion
Copier après la connexion

Dans cet exemple, vous pouvez rapidement définir le bouton «Swift» et «Objective-C» en cliquant sur le bouton «IOS Technologies»:

Voir le stylo select2 - Méthodes programmatiques par SitePoint (@SitePoint) sur Codepen.

Tagging

Le taggage est une autre des fonctionnalités de Select2 qui rend les cases sélectionnées plus puissantes et étend la limite des cases de sélection normales. Il permet aux utilisateurs d'ajouter de nouveaux choix qui ne sont pas déjà dans la liste des options.

Le taggage est également très pratique dans les cas où la gamme de choix est très grande, et vous ne pouvez pas taper tous les choix dans la liste des options. Lorsque le balisage est activé et que les utilisateurs ne trouvent pas leur choix dans la liste, il les «pousse» à créer une balise de leur choix.

Soyez prudent lorsque vous utilisez le tagging, car il peut être utilisé à mauvais escient par les utilisateurs «malveillants» entrant des balises non valides qui ne correspondent pas à l'objectif de la boîte de sélection.

Pour activer le balisage, vous devez définir l'option Tags sur true.

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>Select2 Template</title>
    <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.1/css/select2.min.css">
  </head>
  <body>

    <script src="https://img.php.cn/code.jquery.com/jquery-1.11.3.min.js"></script>
    <script src="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.1/js/select2.min.js"></script>
    <script>// Additional logic goes here</script>
  </body>
</html>
Copier après la connexion
Copier après la connexion
Copier après la connexion

Voir le stylo choisi vs select2: Tagging by SitePoint (@SitePoint) sur codepen.

tokenisation

Une fois que les balises sont définies sur true, l'option pour inclure des séparateurs de jeton devient disponible. Après avoir entré le nom de la balise, tapez simplement l'un des séparateurs de jeton qui sont spécifiés. Ensuite, la balise est entrée comme choix dans la liste des options. Les séparateurs de jeton servent de raccourcis pour créer des balises en tapant des caractères de votre clavier.

À l'aide de Select2, vous pouvez créer des séparateurs de jetons avec n'importe quel personnage que vous souhaitez. Dans l'exemple suivant, quatre séparateurs de jeton sont utilisés: / ,,; et "" (espace).

<span>git clone https://github.com/harvesthq/chosen.git
</span><span>git clone https://github.com/select2/select2.git
</span>
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

Essayez-le en tapant une nouvelle option, suivie par l'un des caractères de séparateur pour le sélectionner et l'ajouter à la liste des options:

Voir le stylo Select2 - Tokenisation par SitePoint (@SitePoint) sur Codepen.

Templage

L'une des fonctionnalités les plus puissantes de Select2 est le modèle. Les modèles nous permettent de personnaliser l'apparence des composants affichés par Select2. Cette fonctionnalité peut être utilisée pour fusionner l'entrée minimale qui est fournie par la balise d'option avec des images ou d'autres composants pour créer un affichage visuel pour l'utilisateur.

Cet exemple combinait les modèles de Select2 avec les glyphicons de bootstrap:

Voir les modèles Pen SELECT2 par SitePoint (@SitePoint) sur Codepen.

Conclusion

Bien que choisi a de belles options à l'intérieur, SELECT2 offre un peu plus en termes de fonctionnalités disponibles pour une utilisation avec des boîtes de sélection. Chosen est une bonne option si vous le combinez dans le «flux» de votre site Web, mais si vous souhaitez accéder à des fonctionnalités plus avancées, SELECT2 est le meilleur choix.

Je recommanderais fortement d'utiliser SELECT2; Il est mis à jour plus souvent que choisi et a moins de bogues. Une chose que j'ai trouvée très utile sur Select2 est sa documentation. Pendant que vous le lisez, vous pouvez utiliser des composants Select2 dans votre projet à la volée.

Si vous avez eu de bonnes ou de mauvaises expériences en utilisant Chosen ou SELECT2, faites-le moi savoir dans la section des commentaires ci-dessous.

Questions fréquemment posées (FAQ) sur les composants de la boîte de sélection jQuery: choisi vs select2

Quelles sont les principales différences entre choisis et sélectionnés Les principales différences entre eux résident dans leurs caractéristiques et leur convivialité. SELECT2 prend en charge Ajax, ce qui lui permet de fonctionner avec de grands ensembles de données en les chargeant à la volée en tant qu'utilisateur. Il prend également en charge le tagging et le défilement infini. Élu, en revanche, ne prend pas en charge Ajax ou le taggage, mais il offre une fonction de recherche conviviale et une interface plus simple.

Comment implémenter SELECT2 dans mon projet?

Pour implémenter Select2, vous devez d'abord inclure les fichiers SELECT2 CSS et JavaScript dans votre projet. Ensuite, vous pouvez initialiser SELECT2 sur n'importe quelle boîte de sélection en utilisant le $ (". MySelectBox"). SELECT2 (); commande. Vous pouvez également personnaliser le comportement de Select2 en passant des options à la fonction SELECT2 ().

Puis-je utiliser le choix et la sélection2 dans le même projet?

Bien qu'il soit techniquement possible d'utiliser les deux choisis et Select2 Dans le même projet, il n'est généralement pas recommandé. Les deux plugins visent à améliorer la fonctionnalité de sélections de sélection, et les utiliser ensemble pourrait entraîner des conflits et un comportement inattendu. Il est préférable de choisir celui qui correspond le mieux à vos besoins.

Comment puis-je personnaliser l'apparence de Select2 et Chosen?

SELECT2 et choisis permettent une personnalisation approfondie via CSS. Vous pouvez modifier les couleurs, les polices, les tailles et autres aspects de leur apparence en remplaçant leurs styles par défaut dans votre propre fichier CSS.

Comment gérer les grands ensembles de données avec select2?

select2 is est-il Bien adapté à la gestion de grands ensembles de données grâce à son support Ajax. Vous pouvez configurer Select2 pour récupérer des données à la volée comme types d'utilisateurs, ce qui empêche la nécessité de charger toutes les données à l'avance. Cela peut améliorer considérablement les performances lorsque vous travaillez avec de grands ensembles de données.

Puis-je utiliser Chosen ou SELECT2 avec des frameworks comme Angular ou React?

Oui, Chosen et Select2 peuvent être utilisés avec des frameworks javascript comme Angular ou réagir. Cependant, vous devrez peut-être utiliser des emballages ou des bibliothèques supplémentaires pour garantir la compatibilité.

Comment ajouter des fonctionnalités de recherche à des fonctionnalités choisies?

choisies sont livrées avec des fonctionnalités de recherche intégrées. Lorsque vous initialisez choisi dans une boîte de sélection, une zone de recherche est automatiquement ajoutée. Les utilisateurs peuvent taper dans cette boîte pour filtrer les options dans la zone de sélection.

Comment gérer plusieurs sélections avec SELECT2 et choisie?

À la fois SELECT2 et Chosen prennent en charge plusieurs sélections. Vous pouvez activer cette fonctionnalité en ajoutant l'attribut multiple à votre boîte de sélection. Lorsque plusieurs sélections sont activées, les utilisateurs peuvent sélectionner plusieurs options dans la case SELECT.

Puis-je utiliser Chosend ou SELECT2 avec des appareils mobiles?

Les deux choisis et SELECT2 sont conçus pour fonctionner avec Desktop navigateurs, mais ils offrent également un support limité aux appareils mobiles. Cependant, en raison de la grande variété de navigateurs et d'appareils mobiles, certaines fonctionnalités peuvent ne pas fonctionner comme prévu.

Comment gérer les événements avec Select2 et Chosen?

Les deux select2 et choisis fournissent un numéro des événements que vous pouvez écouter et répondre. Par exemple, vous pouvez écouter l'événement de changement pour exécuter une fonction chaque fois que l'utilisateur fait une sélection. Vous pouvez joindre des écouteurs d'événements en utilisant la méthode .on () dans jQuery.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal