2012-03-12 26 views
13

Próbuję zmienić wartość mojego pola wyboru, które ma nakładkę Chosen.js. Chodzi o to, aby zmienić wybraną wartość, gdy użytkownik kliknie przycisk.Zmienianie wartości pola wyboru Chosen.js za pomocą jQuery

Przy regularnym zaznaczania mogę zmienić wartość wykonując:

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

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

Ale z Chosen.js nie działa anymore..I Próbowaliśmy kilka rzeczy, ale nic nie działało. Wszelkie pomysły, jak to działa?

Fiddle

+0

możliwe duplikat [Zmiana zaznaczenia w select z wybranym plugin] (http://stackoverflow.com/questions/8980131/changing-selection-in-a-select- z wybraną wtyczką) –

Odpowiedz

24

Więc po zaksięgowaniu na to pytanie ja nadal próbuje rozwiązać ten problem i stało się znaleźć sposób, żeby to zrobić.

$('#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"); 
}); 

Kluczem było wstawienie .chosen() przed .change(), a następnie wywołanie "liszt: updated". To działa, ale nie wiem, czy jest to najlepszy sposób, aby to zrobić ..

Jeśli masz lepszy sposób to zrobić, proszę dać mi znać

+0

możesz również zobaczyć odpowiedź @LuizCarlosLucena na temat możliwości wyboru "selected: update" –

+0

: aktualizacja jest używana w najnowszej wersji, w wersjach legecy użyj liszt: updated –

8

natknąłem to próbuje to rozgryźć siebie.

udało mi się to zrobić za pomocą kombinacji zmianę wybranego indeksu na polu oryginalnego, a następnie wyzwolenie zdarzenia liszt:updated na tym polu:

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

Dzięki wtyczce Chosen.js to działa.

var myIndex = 4; 

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

Just an update (Znalazłem stronę z google, może inni będą go znaleźć również)

Mam tryed skomentować odpowiedź znaku @ Splitz, ale nie mogłem, bo nadal don” t ma wystarczającą reputację.

Nowy sposób to zrobić to:

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

Teraz Sztuką jest "najważniejsze: zaktualizowane".

Updated odpowiedź znaleźć na: Changing selection in a select with the Chosen plugin

Powiązane problemy