Définir par programmation de la valeur d'un Select2 ajax

J'ai un Select2 de l'auto-complétion d'entrée (construits par l'intermédiaire de SonataAdmin), mais pas pour la vie de me comprendre comment le définir par programmation, il à une paire clé/valeur.

Il y a un JS Fiddle ici qui montre à peu près ce que j'ai. Ce que je veux savoir est ce que la fonction que je peux attacher le bouton de sorte que

  • la Select2 champ affiche le texte "NOUVELLE VALEUR" pour l'utilisateur, et
  • la Select2 champ de soumettre une valeur de "1" lorsque le formulaire est envoyé au serveur

J'ai essayé toutes sortes de combinaisons de jQuery et Select2 data et val méthodes, appelé à l'encontre de diverses entrées sur la page, mais rien ne semble fonctionner... sûrement il y a une certaine façon de le faire?

-- Edit --

La accepté de répondre ci-dessous est très utile, permet de jeter un peu de lumière sur la bonne façon d'initialiser la sélection et explique ce que initSelection est pour.

Cela dit, il semble que ma plus grosse erreur ici, c'est la façon dont j'ai été d'essayer de déclencher le changement.

J'ai été en utilisant:

$(element).select2('data', newObject).trigger('change');

Mais il en résulte un vide add objet à l'intérieur de select2 de l'événement de changement.

Si, au lieu de cela, vous utilisez:

$(element).select2('data', newObject, true);

le code fonctionne comme il se doit, avec la newObject disponible dans select2 de l'événement de changement et les valeurs définies correctement.

J'espère que cette information supplémentaire aide à quelqu'un d'autre!

InformationsquelleAutor caponica | 2014-08-20