2016-02-10 1 views
-1

J'utilise ce bit de code pour appliquer les balises de sélections faites sur une page précédente qui ont été enregistrées dans la base de données.select2 tags sans nom

Il crée les balises, mais ne met pas le texte en leur suffit de mettre un X pour le supprimer. sélectionné est un tableau d'emplacements possibles.

i.e. ["work", "home", "away", "Hong Kong", "Manchester".......]

var selected = this.location 
var $element = $("#location").select2(); 
for (var d = 0; d < selected.length; d++) { 
    var item = selected[d]; 
    var option = new Option(item.text, item.id, true, true) 
    $element.append(option); 
} 

toute aide serait appréciée que tous les problèmes de Select2 sur ici semblent traiter principalement des données statiques ou sont avancées pour mon niveau actuel des connaissances.

Comme demandé,

C'est tout ce qu'il ya à faire coder sage. Je veux juste le texte dans les balises

Il ressemble actuellement à cette http://prntscr.com/a1h2nu j'ai besoin de ressembler à ce http://prntscr.com/a1h33w

Voici le code HTML

<div class="form-group"> 
     <label for="location" class="col-lg-3 control-label">Location</label> 
     <div class="col-lg-8"> 
      <select class="form-control" id="location" multiple="multiple" style="width: 100%"> 
      </select> 
      <span class="help-block"></span> 
     </div> 
    </div> 



var item = selected[d]; 
console.log(item); 
var option = new Option(item.text, item.id, true, true) 
console.log(option); 
$element.append(option); 

ce les outils dont dev sortie http://prntscr.com/a1hdf7

+0

Pouvez-vous fournir plus de code ou mieux expliquer la situation. La description ci-dessus est trop vague. –

+0

Possible copie de [Impossible de sélectionner l'option par programmation en utilisant Select2] (http://stackoverflow.com/questions/25128770/cant-programmatically-select-option-using-select2) – Mauro

+0

bien est sur un chargement de page. la page devrait charger avec les étiquettes peuplées – SpeedyH30

Répondre

0

Eh bien, il est une solution simple ... A partir de ce

var item = selected[d]; 
console.log(item); 
var option = new Option(item.text, item.id, true, true) 
console.log(option); 
$element.append(option); 

Pour cela ...

var item = selected[d]; 
console.log(item); 
var option = new Option(item, item.id, true, true) 
console.log(option); 
$element.append(option); 
0

EDIT Mise à jour jsFiddle peut être trouvé here. Le problème principal est que vous avez manqué le bon sélecteur.

Pour que Select2 prenne en compte vos modifications, vous devez déclencher le changement afin que le contrôle soit réévalué.

Vous pouvez voir un violon en direct here

Comme dans

$(".js-programmatic-set-val").on("click", function() { $example.val("CA").trigger("change"); }); 

Référence à Select2 Documentation Programmatic Access

+0

no. select2 fonctionne bien lorsque vous sélectionnez quelque chose de nouveau. les balises doivent être là quand la page est rendue. – SpeedyH30

+0

S'il vous plaît vérifier le violon mis à jour qui fait exactement que https://jsfiddle.net/gw7bpy0s/2/ – Mauro

+0

en toute honnêteté je n'ai aucune idée, tout de ce 'var $ element = $ (" # location ").select2(); \t \t \t \t for (var d = 0; d SpeedyH30