jQuery

2012-03-12 10 views
13

kullanarak Chosen.js seçim kutusunun değerini değiştirin Chosen.js kaplamasına sahip olan seçim kutumu değiştirmeye çalışıyorum. Fikir, kullanıcı bir düğmeyi tıkladığında seçilen değeri değiştirmektir.jQuery

$('#GroupsShowNext').unbind("click").click(function() { 
    var index = $("#GroupsViewGroups").prop("selectedIndex"); 
    index += 1; 

    $('#GroupsViewGroups option').eq(index).attr('selected', 'selected'); 
    $('#GroupsViewGroups').change(); 
}); 

Ama Chosen.js ile bu anymore..I kaç şey denedim ama hiçbir şey çalıştı çalışmaz:

düzenli seçme kutusu ile ben yaparak değerini değiştirebilirsiniz. Herhangi bir fikir nasıl çalışır?

Fiddle

+0

[Seçilen eklenti ile seçkin bir yer değiştirme seçimi] (olası yinelenen http://stackoverflow.com/questions/8980131/changing-selection-in-a-select- with-the-selected-plugin) –

cevap

24

Bu yüzden bu sorunu çözmek için çalışıyor devam etti ve bunu yapmak için bir çıkış yolu buldum oldu bu soruyu yazdıktan sonra.

$('#GroupsShowNext').unbind("click").click(function() { 
    var index = $("#GroupsViewGroups").prop("selectedIndex"); 
    index += 1; 
    $('#GroupsViewGroups option').eq(index).attr('selected', 'selected'); 
    $('#GroupsViewGroups').chosen().change(); 
    $("#GroupsViewGroups").trigger("liszt:updated"); 
}); 

anahtar .change() önce() .chosen koymak ve ardından ": güncellenmiş Liszt'i" tetiklemek için oldu. Bunu yapmak için daha iyi bir yolu varsa, bunu anlamaya çalışıyorum karşısında beni

+0

da görebilirsiniz @LuizCarlosLucena da seçilebilir "seçilen: güncelleme" –

+0

seçilebilir seçilen: güncelleme en son sürümünde kullanılır, legecy sürümleri kullanımı liszt: güncellendi –

8

Ben tökezledi bildirin lütfen

.. O çalışıyor ancak bu Bunu yapmanın en iyi yolu ise bilmiyorum kendim.

Ben orijinal sahada seçilen dizini değiştirmeden ve daha sonra bu alanda liszt:updated olayı tetikleyen bir kombinasyonu ile bunu başardı: eklenti sayesinde

$('#GroupsViewGroups')[0].selectedIndex = $('#GroupsViewGroups')[0].selectedIndex + 1; 
$('#GroupsViewGroups').trigger('liszt:updated'); 
2

çalıştığını Chosen.js.

var myIndex = 4; 

$("select#GroupsViewGroups").prop('selectedIndex', myIndex); 
5

Sadece bir güncelleme 'ı @ splitz cevabını yorum yapmak uğraş ettik

(ı google bu sayfayı buldu, belki diğer insanlar da bulacaksınız) ama ben hala don olamazdı çünkü Yeterli bir itibara sahip olmak.

bunu yapmak için yeni bir yoludur:

$('#GroupsShowNext').unbind("click").click(function() { 
    var index = $("#GroupsViewGroups").prop("selectedIndex"); 
    index += 1; 
    $('#GroupsViewGroups option').eq(index).attr('selected', 'selected'); 
    $("#GroupsViewGroups").trigger("chosen:updated"); 
}); 

Şimdi, mesele "seçilenin: updated".

Güncelleme cevabı üzerinde bulunan: Changing selection in a select with the Chosen plugin