Dans Select2, comment faire formatSelection et formatResult travail?
Je suis en utilisant Select2 (http://ivaynberg.github.io/select2/) d'avoir un champ de saisie d'un formulaire (disons que son id est topics
) pour être au marquage de mode, avec la liste des balises existantes (permettant à l'utilisateur de choisir quelques-uns de ces balises, ou d'en créer de nouveaux) étant fourni par un tableau de données à distance.
Le tableau (list.json
) est correctement reçu de mon serveur. Il a id
et text
champs, depuis Select2 semble avoir besoin de ces champs. Ainsi, il ressemble à ceci:
[ { id: 'tag1', text: 'tag1' }, { id: 'tag2', text: 'tag2' }, { id: 'tag3', text: 'tag3' } ]
Le script dans le fichier HTML ressemble à ceci:
$("#topics").select2({
ajax: {
url: "/mypath/list.json",
dataType: 'json',
results: function (data, page) {
return {results: data};
},
}
});
Mais le champ d'entrée est de montrer "la recherche", ce qui signifie qu'il n'est pas en mesure d'utiliser le tableau pour le marquage de soutien.
Dans le script avec Select2, je sais que je dois définir formatSelection
et formatInput
, mais je ne reçois pas comment ils doivent travailler dans mon cas, même si j'ai lu le Select2 documentation... Merci pour votre aide!
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin d'ajouter des fonctions comme l'a expliqué ici. Dans votre exemple:
function format(item) { return item.text; } $("#topics").select2({ ajax: { url: "/mypath/list.json", dataType: 'json', results: function (data, page) { return {results: data}; } }, formatResult: format, formatSelection: format, escapeMarkup: function (m) { return m; } });
mais ça ne marche toujours pas.data
sur le côté serveur, mais pourrait ouvrir une session rien sur le côté client .Mais j'ai trouvé le problème (message dans la console sur le côté client): mon serveur était de ne pas laisser Cross-Origin Resource sharing (SCRO), et depuis que j'ai été faire des tests à partir d'un autre fichier HTML, il ne pouvait pas travailler. J'ai corrigé ça. Il est maintenant opérationnel. Merci beaucoup pour votre aide et votre patience!