SORU
9 Ocak 2013, ÇARŞAMBA


Select2 AJAX ile etiketleme

select2 etiketleme yapıyorum

Select2 ile bu gereksinimleri var:

  1. Bazı etiketler select2 ajax kullanarak arama yapmak istiyorum
  2. Ayrıca gerek genel olarak "etiketler listesinde olmayan bir değer Verir(Ajax sonucu)" select2.

Her iki senaryolardan bağımsız olarak çalışır. Ama birbirlerine aJax değerleri sadece doldurulur. Biz listede olmayan başka bir değer yazın, sonra da diyor ki, "eşleşme bulunamadı"

Kullanıcı yazarsanız benim senaryo listesinde olmayan yeni bir değer, onları kendi etiket yapmak için izin verin.

Bu işi yapmak için bir yolu var mı?

CEVAP
12 ŞUBAT 2013, Salı


Select2 olan işlevi "": . createSearchChoice

Yeni bir seçilebilir kullanıcı arama terimi seçimi oluşturur. Sağlar sorgu işlevi üzerinden değil, seçenekler oluşturma. Kullanışlı kullanıcı anında seçimler oluşturabilir, 'etiketleme' usecase. eg

Ne istediğinizi kullanarak elde edebiliriz:

createSearchChoice:function(term, data) {
  if ($(data).filter(function() {
    return this.text.localeCompare(term)===0;
  }).length===0) {
    return {id:term, text:term};
  }
},
multiple: true

İşte bir ajax arama için JSON sonuç verir ve etiketler halinde vadede sonuç döndürdü vadede oluşturulan, sağlayan daha kapsamlı bir cevap

$(".select2").select2({
  tags: true,
  tokenSeparators: [",", " "],
  createSearchChoice: function(term, data) {
    if ($(data).filter(function() {
      return this.text.localeCompare(term) === 0;
    }).length === 0) {
      return {
        id: term,
        text: term
      };
    }
  },
  multiple: true,
  ajax: {
    url: '/path/to/results.json',
    dataType: "json",
    data: function(term, page) {
      return {
        q: term
      };
    },
    results: function(data, page) {
      return {
        results: data
      };
    }
  }
});

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • glowpinkstah

    glowpinkstah

    16 Mayıs 2006
  • jonathepianist

    jonathepiani

    31 Temmuz 2008
  • OVERWERK

    OVERWERK

    6 Temmuz 2010