Untuk versi select2> = 4.0.0
Solusi lain mungkin tidak berfungsi, namun contoh berikut ini harus berfungsi.
Solusi 1: Menyebabkan semua peristiwa perubahan terlampir untuk memicu, termasuk select2
$('select').val('1').trigger('change');
Solusi 2: Penyebab JUST select2 ubah acara untuk memicu
$('select').val('1').trigger('change.select2');
Lihat jsfiddle ini untuk contohnya. Terima kasih kepada @minlare untuk Solusi 2.
Penjelasan:
Katakanlah saya punya sahabat pilih dengan nama orang. Jadi Bob, Bill, dan John (dalam contoh ini saya asumsikan nilainya sama dengan namanya). Pertama saya menginisialisasi select2 pada pilih saya:
$('#my-best-friend').select2();
Sekarang saya secara manual memilih Bob di browser. Selanjutnya Bob melakukan sesuatu yang nakal dan aku tidak menyukainya lagi. Jadi sistem membatalkan pilihan Bob untuk saya:
$('#my-best-friend').val('').trigger('change');
Atau katakan saya membuat sistem memilih yang berikutnya dalam daftar alih-alih Bob:
// I have assume you can write code to select the next guy in the list
$('#my-best-friend').val('Bill').trigger('change');
Catatan pada situs web Select 2 (lihat Metode usang dan dihapus ) yang mungkin berguna untuk orang lain:
.select2 ('val')
Metode "val" telah usang dan akan dihapus di Select2 4.1. Metode yang tidak lagi digunakan tidak lagi menyertakan parameter triggerChange.
Anda harus langsung memanggil .val pada elemen yang mendasarinya. Jika Anda membutuhkan parameter kedua (triggerChange), Anda juga harus memanggil .trigger ("change") pada elemen.
$('select').val('1').trigger('change'); // instead of $('select').select2('val', '1');