2015-05-27 13 views
21

Çok sayıda iyileştirme sağlayan yeni Select2 v4.0'u deniyorum. Ben esas olarak tags özelliği ile ilgileniyorum. Ajax ve üzerinden sadece etiketlerini arayabilmek için gösterilen sonuçlardan bir etiket seçebilmek ve yeni etiketler oluşturamamak istiyorum. İşlevsellik StackOverflow'a benzer - gerekli bir itibara sahip değilseniz yeni etiketler oluşturamazsınız, ancak yine de bir etiketi mevcut etiketlerle etiketleyebilirsiniz.select2 v4.0 ile yeni etiketler nasıl yaratılır?

Örneklerimden alınan kodumla birlikte bir jsfiddle. Örnekte, sınırlamak istediklerim olan yeni etiketler oluşturabilirsiniz. Kullanıcı, yalnızca agax üzerinden GitHub'dan alınan listeden etiketleri seçebilmelidir.

Bu işlevsellik nasıl devre dışı bırakılacağını bilen var mı?

cevap

35

Bu çalışması gerekir 2'yi Seç başlatılması halinde, şöyle createTag işlevinden tanımsız dönen deneyin.

Birkaç belirteci ayırıcı belirttim (çünkü ziyaretçilerin web sitesinde farklı bir noktada etiket oluşturmasına izin verildi). Kapananlar, tags yapılandırması false olarak ayarlanmış olsa bile, yine de uygulanmaktadır.

Çözüm: tags: false ve tokenSeperators için bir değer DEĞİL DEĞİL. multiple: true'u saklayın.

+1

Geç yanıt için özür dilerim. Bu benim için iyi çalışıyor gibi görünüyor. Paylaşım için teşekkürler! :) – tftd

+0

@tftd Bu çözümü kullanarak kemanı güncelleyebilir, gönderdiğiniz kemanı güncellemeyi denedim ama bunun içinde çalışmaz. –

+6

Görünüşe göre, bu, 4.0 öncesi (3.5.3) Select2'de 'createSearchChoice()' olarak adlandırılıyordu. 4.0'a taşındıklarında birçok işlev ismini değiştirdiler. –

2

Select2'yi başlatırken tags: true öğesini kaldırarak etiketleri devre dışı bırakabilirsiniz. Veya alternatif olarak, Select2'yi başlatırken tags: false ayarını yapın. Etiketler yalnızca true'dan geçtiğinizde if the tags option is truthy etkinleştirilmiş.

createTag: function(params) { 
       return undefined; 
      } 
+0

aşağıdaki [görsel efekti] arıyorum (https://camo.githubusercontent.com/d700cc5a313d0dfb98450132b62e1da0fd727ef1/687474703a2f2f6165686c6b652e6769746875622e636f6d2f7461672d69742f5f7374617469632f73637265656e73686f742e706e67). Eğer 'tags: false' ayarlıysam (ya da sadece atla), bir seçim kutusuna geri dönecektir. Benim durumumda, bir seçim kutusu yerine [tag-it] (http://aehlke.github.io/tag-it/) gibi çalışmak için ona ihtiyacım var. – tftd

+0

Neyi kastettiğinizden tam olarak emin değilim ve ne yazık ki bir jsfiddle/jsbin'e bakmak zorunda kalmadan (şu anda neye karşılık istediğinizi), başlığınızdaki soruları yanıtlamak zor. "Seçme kutusuna geri dön" ile ne demek istediğinden emin değilim. Tesadüfen 'çoklu 'seçeneğini mi arıyorsunuz? –

+0

Muhtemelen yeterince iyi açıklayamadım - üzgünüm. Demek istediğim, 'tag: false' i kaldırırsam [Yükleme uzak verileri] (https://select2.github.io/examples.html) örneği gibi bir seçim kutusu olur. Sorumu güncelledim. Umarım bu daha mantıklı olur mu? – tftd

15

Ben de bununla mücadele ettik, ancak birkaç saat sonra çalışma var: -