Ini milik kode sebelum select2 versi 4
Saya memiliki kode sederhana select2
yang mendapatkan data dari ajax
$("#programid").select2({
placeholder: "Select a Program",
allowClear: true,
minimumInputLength: 3,
ajax: {
url: "ajax.php",
dataType: 'json',
quietMillis: 200,
data: function (term, page) {
return {
term: term, //search term
flag: 'selectprogram',
page: page // page number
};
},
results: function (data) {
return {results: data};
}
},
dropdownCssClass: "bigdrop",
escapeMarkup: function (m) { return m; }
});
Kode ini berfungsi, namun, saya perlu menetapkan nilainya seolah-olah dalam mode edit. Ketika pengguna memilih nilai pertama kali, itu akan disimpan dan ketika dia perlu mengedit nilai itu harus muncul di menu pilih yang sama ( select2
) untuk memilih nilai yang dipilih sebelumnya tetapi saya tidak dapat menemukan cara.
MEMPERBARUI:
Kode HTML:
<input type="hidden" name="programid" id="programid" class="width-500 validate[required]">
Akses terprogram Select2 tidak bekerja dengan ini.
javascript
php
jquery
ajax
jquery-select2
ClearBoth
sumber
sumber
$("#programid").val()
Jawaban:
Untuk secara dinamis menyetel nilai "terpilih" dari komponen Select2:
Dimana parameter kedua adalah obyek dengan nilai yang diharapkan.
MEMPERBARUI:
Ini berhasil, hanya ingin dicatat bahwa di select2 baru, "a_key" adalah "teks" dalam objek select2 standar. begitu:
{id: 100, text: 'Lorem Ipsum'}
Contoh:
Terima kasih kepada @NoobishPro
sumber
$('#inputID').val(100).trigger('change')
Lihat select2.github.io/…Langkah # 1: HTML
Langkah # 2: Buat instance Select2
Langkah # 3: Tetapkan nilai yang Anda inginkan
Jika Anda menggunakan select2 tanpa AJAX, Anda dapat melakukan hal berikut:
Anda juga dapat melakukannya:
Untuk select2 v4 Anda dapat menambahkan langsung opsi sebagai berikut:
Atau dengan JQuery:
contoh lainnya
sumber
Html:
JavaScript:
jsfiddle.dll
sumber
Juga seperti yang saya coba, ketika menggunakan ajax di select2, metode kontrol programatik untuk menetapkan nilai baru di select2 tidak berfungsi untuk saya! Sekarang saya menulis kode ini untuk menyelesaikan masalah:
Anda dapat menguji kode sampel lengkap di sini tautan: https://jsfiddle.net/NabiKAZ/2g1qq26v/32/
Dalam kode sampel ini ada ajax select2 dan Anda dapat mengatur nilai baru dengan tombol.
Tampilkan cuplikan kode
sumber
Coba tambahkan ini lalu pilih. Tidak menduplikasi opsi pada panggilan AJAX.
sumber
Saya suka ini-
sumber
Di versi saat ini di
select2
-v4.0.1
Anda dapat menyetel nilainya seperti ini:sumber
destroy
memanggil ulang plugin lagi .. Lihat kode yang diperbarui ..so that I wouldn't have to duplicate them
Mengapa harus menduplikasi mereka? Ketika Anda melakukandestroy
yangselect
masih ada dengan semua nyaoptions
.$example.select2({ ... this ... })
Untuk Ajax, gunakan
$(".select2").val("").trigger("change")
. Itu seharusnya menyelesaikan masalah.sumber
Saya pikir Anda membutuhkan
initSelection
fungsinyasumber
HTML
JS
sumber: https://select2.github.io/options.html
sumber
Di Select2 V.4
menggunakan
$('selector').select2().val(value_to_select).trigger('change');
Saya pikir itu harus berhasil
sumber
Tetapkan nilai dan segera picu peristiwa perubahan.
sumber
Saya memecahkan masalah saya dengan kode sederhana ini. Di mana #select_location_id adalah ID dari kotak pilih dan nilai adalah nilai opsi yang terdaftar di kotak pilih2.
sumber
Jawaban An Phan berhasil untuk saya:
Tetapi menambahkan perubahan memicu peristiwa tersebut
sumber
Anda dapat menggunakan kode ini:
dimana 2 dalam "angka: 2" dan 3 dalam "angka: 3" adalah bidang id dalam larik objek
sumber
Terkadang,
select2()
akan memuat terlebih dahulu, dan itu membuat kontrol tidak menunjukkan nilai yang dipilih sebelumnya dengan benar. Menunda beberapa detik dapat mengatasi masalah ini.sumber
Akan lebih tepat untuk melamar
select2
setelah memilih salah satu pilihan saat ini.sumber
Saya melakukan sesuatu seperti ini untuk mengatur elemen di dropdown select2 ajax
sumber
Kamu harus menggunakan:
sumber
Jika Anda menggunakan kotak Input, Anda harus menyetel properti "multiple" dengan nilainya sebagai "true". Sebagai contoh,
sumber
Di
select2 < version4
sana ada opsiinitSelection()
untuk memuat data jarak jauh, yang melaluinya dimungkinkan untuk mengatur nilai awal untuk input seperti dalam mode edit.Dokumentasi Sumber: Select2 - 3.5.3
sumber
Hanya untuk menambahkan kepada orang lain yang mungkin memiliki masalah yang sama dengan saya.
Saya mencoba untuk mengatur opsi yang dipilih dari opsi saya yang dimuat secara dinamis (dari AJAX) dan mencoba untuk mengatur salah satu opsi sebagai yang dipilih tergantung pada beberapa logika.
Masalah saya muncul karena saya tidak mencoba mengatur opsi yang dipilih berdasarkan ID yang harus sesuai dengan nilainya, bukan nilai yang cocok dengan nama!
sumber
Untuk beberapa nilai seperti ini:
yang akan diterjemahkan menjadi sesuatu seperti ini
sumber
Ini dapat membantu seseorang memuat data select2 dari AJAX saat memuat data untuk diedit ( berlaku untuk pilihan tunggal atau multi ):
Selama pemuatan formulir / model saya:
Panggilan untuk memilih data untuk Select2:
dan jika Anda mungkin mengalami masalah dengan pengkodean, Anda dapat mengubah sebagai kebutuhan Anda:
sumber
jika Anda mendapatkan nilai Anda dari ajax, sebelum menelepon
konfirmasikan bahwa panggilan ajax telah selesai, menggunakan fungsi jquery when
sumber
Untuk membangun di atas jawaban @ tomloprod. Secara kebetulan Anda menggunakan x-editable , dan memiliki kolom select2 (v4) dan memiliki beberapa item yang perlu Anda pilih sebelumnya. Anda dapat menggunakan potongan kode berikut:
dan ini dia beraksi:
Saya rasa ini akan berhasil bahkan jika Anda tidak menggunakan x-editable. Saya berharap htis dapat membantu seseorang.
sumber
Anda dapat menggunakan kode ini:
Masukkan nilai yang Anda inginkan, bukan Nilai_Anda
Semoga Ini akan berhasil :)
sumber
Baik dan mudah:
Dan Anda mengubah
id_city
ke id pilihan Anda.Sunting: Setelah komentar Glen, saya menyadari bahwa saya harus menjelaskan mengapa dan bagaimana itu bekerja untuk saya:
Saya telah membuat
select2
pekerjaan sangat bagus untuk bentuk saya. Satu-satunya hal yang tidak dapat saya lakukan adalah menunjukkan nilai yang dipilih saat ini saat mengedit. Itu mencari API pihak ketiga, menyimpan catatan baru dan mengedit catatan lama. Setelah beberapa saat saya menyadari bahwa saya tidak perlu mengatur nilainya dengan benar, hanya label di dalam bidang, karena jika pengguna tidak mengubah bidang, tidak ada yang terjadi. Setelah mencari dan melihat banyak orang mengalami masalah dengan itu, saya memutuskan membuatnya dengan Javascript murni. Ini berhasil dan saya memposting untuk mungkin membantu seseorang. Saya juga menyarankan untuk mengatur pengatur waktu untuk itu.sumber