Select2 sürümü için> = 4.0.0
Diğer çözümler işe yaramayabilir, ancak aşağıdaki örnekler işe yarayacaktır.
Çözüm 1: select2 dahil tüm bağlı değişiklik olaylarının tetiklenmesine neden oluyor
$('select').val('1').trigger('change');
Çözüm 2: SADECE select2 değişiklik olayının tetiklenmesine neden oluyor
$('select').val('1').trigger('change.select2');
Bunların örnekleri için bu jsfiddle'a bakın . Çözüm 2 için @ minlare sayesinde.
Açıklama:
İnsanların isimleriyle seçtiğim en iyi arkadaşım olduğunu söyle. Bob, Bill ve John (bu örnekte, değerin adıyla aynı olduğunu varsayıyorum). Önce seçimimde select2'yi başlatırım:
$('#my-best-friend').select2();
Şimdi tarayıcıda el ile Bob'u seçiyorum. Sonra Bob yaramaz bir şey yapar ve artık onu sevmiyorum. Sistem benim için Bob'un seçimini kaldırıyor:
$('#my-best-friend').val('').trigger('change');
Veya sistemin Bob yerine listede bir sonraki seçmesini sağladığımı söyleyin:
// I have assume you can write code to select the next guy in the list
$('#my-best-friend').val('Bill').trigger('change');
Başkaları için yararlı olabilecek Select 2 web sitesiyle ilgili notlar (bkz. Kullanımdan kaldırılmış ve kaldırılmış yöntemler ):
.select2 ('val')
"val" yöntemi kullanımdan kaldırıldı ve Select2 4.1'de kaldırılacak. Kullanımdan kaldırılan yöntem artık triggerChange parametresini içermiyor.
Bunun yerine doğrudan alttaki öğede .val öğesini çağırmalısınız. İkinci parametreye (triggerChange) ihtiyacınız varsa, öğe üzerinde .trigger ("change") öğesini de çağırmalısınız.
$('select').val('1').trigger('change'); // instead of $('select').select2('val', '1');