121 votes

"fonction de requête non définie pour l'erreur non définie Select2"

Essayer d'utiliser Select2 et obtenir cette erreur sur plusieurs champs de saisie / texte:

 "query function not defined for Select2 undefined error"
 

245voto

Daniel Morris Points 2053

Couverts dans ce groupe google thread

Le problème était que de l'extra div qui a été ajouté par l'select2. Select2 a ajouté une nouvelle div avec la classe "select2-forme de contenant-select" pour envelopper le sélectionner créé. Donc la prochaine fois que j'ai chargé de la fonction, l'erreur a été d'être jeté comme select2 était attaché à l'élément div. J'ai changé mon sélecteur de...

Préfixe select2 css identifiant avec mot-clé nom de "sélectionner":

$('select.form-select').select2();

7voto

parliament Points 1816

Pour moi, ce problème se résumait à définir l'attribut correct data-ui-select2:

 <input type="text" data-ui-select2="select2Options.projectManagers" placeholder="Project Manager" ng-model="selectedProjectManager">


$scope.projectManagers = { 
  data: []  //Must have data property 
}

$scope.selectedProjectManager = {};
 

Si j'enlève le data propriété sur $scope.projectManagers Je reçois cette erreur.

5voto

keaplogik Points 400

Ce problème se résumait à la façon dont je construisais ma boîte de sélection select2. Dans un fichier javascript, j'avais ...

 $(function(){
  $(".select2").select2();
});
 

Et dans un autre fichier js, un remplacement ...

 $(function(){
    var employerStateSelector = 
                $("#registration_employer_state").select2("destroy");
    employerStateSelector.select2({
    placeholder: 'Select a State...'
    });
});
 

Le déplacement du deuxième remplacement dans un événement de chargement de fenêtre a résolu le problème.

 $( window ).load(function() {
  var employerStateSelector = 
              $("#registration_employer_state").select2("destroy");
  employerStateSelector.select2({
    placeholder: 'Select a State...'
  });
});
 

Ce problème s'est épanoui au sein d'une application Rails

3voto

koppor Points 2066

Il semble que votre sélecteur retourne un élément indéfini (Par conséquent, undefined error est renvoyé)

Dans le cas où l'élément existe réellement, vous appelez select2 sur un élément input sans rien fournir à select2, d'où il doit extraire les données. En général, on appelle .select2({data: [{id:"firstid", text:"firsttext"}]) .

2voto

mfamador Points 21

Également eu la même erreur en utilisant ajax.

Si vous utilisez ajax pour rendre les formulaires avec select2, la classe input_html doit être différente de celles NON rendues à l'aide de ajax. Vous ne savez pas très bien pourquoi cela fonctionne de cette façon.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X