2013-06-06 31 views

cevap

22

Tek yön

$('select').select2().select2('val', $('.select2 option:eq(1)').val()); 

Yani temelde ilk eklenti ardından 'val' parametresini kullanarak varsayılan değeri belirtmek initalize ... olduğunu. Gerçek değer, belirtilen durumda, bu durumda # 1 alınır. Bu yüzden bu örnekte seçilen değer "bar" olacaktır.

<select class=".select2"> 
    <option id="foo">Some Text</option> 
    <option id="bar">Other Text</option> 
</select> 

Bunun bir başkası için yararlı olmasını umarız.

+0

html biçimlendirme sahip bir içinde bir '.' ile sınıf. temel olarak kodunuz değeri ayarlamaz, çünkü yanlış elemanı seçersiniz. – krishgopinath

+0

veya bulunmayan bir eleman :) – krishgopinath

+0

Seçtiğiniz değeri ayarladıktan sonra silme düğmesine sahip olmanız gerekiyorsa: $ ('. Select'). Select2 ({allowClear: true}) select2 ('val', $) ('.select2 seçeneği: eq (1)'). val()); –

41

Tek bir yol daha - select işaretine selected = "selected" özniteliği ekleyin ve üzerinde select2 numaralı telefonu arayın. Seçtiğiniz değeri almalı. Ekstra JavaScript'e gerek yok. Şunun gibi:

Biçimlendirme

<select class="select2"> 
    <option id="foo">Some Text</option> 
    <option id="bar" selected="selected">Other Text</option> 
</select> 

JavaScript

$('select').select2(); //oh yes just this! 

Bkz keman: http://jsfiddle.net/6hZFU/

Düzenleme: (Teşekkürler Jay Haase)

bu işe yaramazsa, bu gibi değeri temizlemek için, null için select2 arasında val özelliğini ayarlamayı deneyin: Bundan sonra

$('select').select2("val", null); //a lil' bit more :) 

, "Whatever You Want" için val kuracak kadar basittir.

+3

Yukarıdaki JavaScript’in benim için çalışmasını sağlayamadım. Çalışmak için aşağıdakileri yaptım: $ ("# id") select2 ("val", null); –

+0

kodunun üstünde tek değer için iyi çalışıyor, ancak birden fazla değer durumunda sadece bir değer seçiliyor –

20
$("#id").select2("val", null); //this will not work..you can try 

Aslında bu ... intialise yapmak ve sonra benim için çalıştı yolu bu da value..well belirlesin.

$("#id").select2().select2("val", null); 
$("#id").select2().select2("val", 'oneofthevaluehere'); 
+1

Bu benim için çalıştı, teşekkürler! – Matheno

+0

burada sevinç yok. Başlatma ile veya olmadan, bu sadece AJAX verileriyle çalışmaz! – MC9000

0

ajax select2 için çoklu seçim açılır menüsü bunu beğendim;

//preset element values 
    //topics is an array of format [{"id":"","text":""}, .....] 
     $(id).val(topics); 
      setTimeout(function(){ 
      ajaxTopicDropdown(id, 
       2,location.origin+"/api for gettings topics/", 
       "Pick a topic", true, 5);      
      },1); 
     // ajaxtopicDropdown is dry fucntion to get topics for diffrent element and url 
0
$('select').select2("val",null); 
+1

Lütfen daha fazla bilgi ile düzenleyin. Sadece kod ve "bunu dene" yanıtları önerilmez, çünkü bunlar aranabilir içerik içermez ve neden birinin "bunu denemesi" gerektiğini açıklamamaktadır. Bilgi için bir kaynak olmak için burada çaba sarf ediyoruz. –

4

yukarıdaki çözümleri benim için işe yaramadı, ama Select2 kendi web sitesinden bu kod yaptı:

$('select').val('US'); // Select the option with a value of 'US' 
$('select').trigger('change'); // Notify any JS components that the value changed 

Webpage found here

Umut bu gibi mücadele ediyor herkes için yardımcı olur Ben ... idim. Bir dizi veri kaynağı kullanıyorsanız

0

aşağıdaki gibi bir şey yapabilirsiniz -

$(".select").select2({ 
    data: data_names 
}); 
data_names.forEach(function(name) { 
    if (name.selected) { 
     $(".select").select2('val', name.id); 
    } 
}); 

Bu Verilerinizden varsayılan seçilmiş adında ek özellik vardır olarak ayarlamak istediğiniz bir öğe ayarlamak varsayar ve değeri ayarlamak için kullanırız.

0

4.x (Çünkü eğer gösteri yer tutucu) bir şey seçmek için

$('#select2Id').val('').trigger('change'); 

$('#select2Id').val(__INDEX__).trigger('change'); 

INDEX ile değer seçmek için sürümü için