Saya ingin memiliki dropdown dengan sekumpulan nilai tetapi juga memungkinkan pengguna untuk "memilih" nilai baru yang tidak terdaftar di sana.
Saya melihat bahwa select2 mendukung ini jika Anda menggunakannya dalam tags
mode, tetapi adakah cara untuk melakukannya tanpa menggunakan tag?
jquery-select2
johnjohn
sumber
sumber
Jawaban:
Untuk versi 4+, periksa jawaban di bawah ini oleh Kevin Brown
Di Select2 3.5.2 dan yang lebih lama, Anda dapat menggunakan sesuatu seperti:
(diambil dari jawaban di milis select2, tetapi tidak dapat menemukan tautannya sekarang)
sumber
selectOnBlur: true
wasiat, silakan lihat: stackoverflow.com/questions/25616520/…tags: []
bersamacreateSearchChoice
.The jawaban yang sangat baik yang disediakan oleh @fmpwizard bekerja untuk Select2 3.5.2 dan bawah, tapi itu tidak akan berhasil di 4.0.0 .
Sejak awal (tapi mungkin tidak sedini pertanyaan ini), Select2 telah mendukung "pemberian tag": di mana pengguna dapat menambahkan nilai mereka sendiri jika Anda mengizinkannya. Ini dapat diaktifkan melalui
tags
opsi, dan Anda dapat bermain-main dengan contoh di dokumentasi .Secara default, ini akan membuat opsi yang memiliki teks yang sama dengan istilah pencarian yang mereka masukkan. Anda dapat memodifikasi objek yang digunakan jika Anda ingin menandainya dengan cara khusus, atau membuat objek dari jarak jauh setelah dipilih.
Selain berfungsi sebagai tanda yang mudah dikenali pada objek yang diteruskan melalui
select2:select
acara, properti tambahan juga memungkinkan Anda merender opsi sedikit berbeda pada hasilnya. Jadi, jika Anda ingin memberi sinyal visual bahwa ini adalah opsi baru dengan meletakkan " (baru) " di sebelahnya, Anda dapat melakukan sesuatu seperti ini.sumber
Demi menjaga kodenya tetap hidup, saya memposting kode @rrauenza Fiddle dari komentarnya .
HTML
jQuery
sumber
Karena banyak dari jawaban ini tidak berfungsi di 4.0+, jika Anda menggunakan ajax, Anda dapat meminta server menambahkan nilai baru sebagai opsi. Jadi akan bekerja seperti ini:
[{"text":" my NEW option)","id":"0"}]
sumber
Saya pikir ada solusi yang lebih baik sekarang
cukup setel penandaan ke true pada opsi pilih?
dari https://select2.org/tagging
sumber
Meningkatkan jawaban @fmpwizard:
sumber
Saya baru saja menemukan ini dari Kevin Brown. https://stackoverflow.com/a/30019966/112680
Yang harus Anda lakukan
v4.0.6
adalah menggunakantags: true
parameter.sumber
Dalam banyak kasus, kita perlu membandingkan nilai dengan register tidak sensitif. Dan kode ini akan mengembalikan false, yang akan mengarah pada pembuatan rekaman duplikat dalam database. Selain itu, String.prototype.localeCompare () tidak didukung oleh Safary browser dan kode ini tidak akan berfungsi di browser ini;
akan lebih baik menggantikan
sumber
Terima kasih atas bantuannya, saya menggunakan kode di bawah ini dalam Codeigniter II saya menggunakan versi: 3.5.2 dari select2.
sumber