Ensemble de données dans Select2 après l'insertion par l'AJAX
je suis en utilisant le Select2 avec AJAX (le code ci-dessous):
$(".select2-ajax").select2({
placeholder: "Search user",
minimumInputLength: 1,
ajax: {
url: $('#url-search-client').val(),
dataType: 'json',
type: 'post',
data: function (term, page) {
return {
filter: term
};
},
results: function (data, page) {
return {results: data};
}
},
width : '50%',
formatInputTooShort: function () {return 'Informe mais caracteres'; },
formatResult: formatResultSelectAjax, //omitted for brevity, see the source of this page
formatSelection: formatSelectAjaxValue, //omitted for brevity, see the source of this page
dropdownCssClass: "bigdrop" //apply css that makes the dropdown taller
});
Bien, si elle ne trouve pas de client, l'utilisateur peut utiliser un bouton pour ouvrir un modal et ajouter le nouveau client, il est possible d'utiliser le retour json(avec l'id et namae) de nouveaux clients et de mettre les données (nom) dans le select2 sélectionnés?
$('.btn-form-client').click(function() {
$.ajax({
url: $('#frm-client').attr('action'),
dataType: 'json',
type: 'post',
data: $('#frm-client').serialize()
}).done(function (data) {
$('#modal-client').modal('hide')
});
return false;
});
Pourriez-vous faire ce travail?
OriginalL'auteur Tommy | 2013-01-14
Vous devez vous connecter pour publier un commentaire.
De départ dans la v4.x, select2 n'utilise plus le caché
input
champ. Au lieu de cela, vous créer un nouveauet l'ajouter à votre
select
élément:La combinaison de la
true
arguments ettrigger('change')
assurez-vous que votre nouveau<option>
est automatiquement sélectionné.Voir mon codepen pour un travail complet exemple.
Si vous souhaitez ajouter une option avec des espaces, le jquery de recherche qui doit être fixé à entourer la valeur de l'option avec des guillemets simples:
if ($("#state").find("option[value='" + newStateVal + "']").length) {
Merci, j'ai mis à jour mon codepen.
ce sur plusieurs éléments sélectionnés ? cochez cette jsfiddle : jsfiddle.net/xqhp0z0x/27
vous pouvez passer un tableau de valeurs à
.val
, mais vous devez faire tout ce après de l'initialisation de l'Select2. Si vous ouvrez un problème sur github.com/select2/docs, je peux le document.OriginalL'auteur alexw
J'ai réussi à le faire fonctionner. Après le POST en jQuery, je reçois un JSON avec les nouvelles données et de définir le hidden input et select ('.select2-ajax')
OriginalL'auteur Tom