2012-01-23 25 views
71

Próbuję zmienić aktualnie wybraną opcję w zaznaczeniu za pomocą wtyczki Wybrany.Zmiana wyboru zaznaczenia za pomocą wtyczki Wybrany

documentation obejmuje aktualizację listy i wyzwalanie zdarzenia po wybraniu opcji, ale nic (co widzę) na zewnętrzną zmianę aktualnie wybranej wartości.

Zrobiłem jsFiddle to demonstrate the code i moi próbowali sposoby zmieniania wybór:

$('button').click(function() { 
    $('select').val(2); 
    $('select').chosen().val(2); 
    $('select').chosen().select(2); 
}); 
+0

nie mogłem uruchomić jsfiddle demonstrację podałeś. czy mógłbyś to zaktualizować? – Lucky

+0

OK. Powodem, dla którego nie mogłem przeprowadzić demonstracji, była wybrana biblioteka wskazująca niepoprawny adres URL. Oto zaktualizowany [jsfiddle] (http://jsfiddle.net/queZ6/666/) – Lucky

Odpowiedz

165

W sekcji „Aktualizowanie Chosen dynamicznie” w docs: Trzeba wyzwolić „wybrani: updated” zdarzenie na pole

$(document).ready(function() { 

    $('select').chosen(); 

    $('button').click(function() { 
     $('select').val(2); 
     $('select').trigger("chosen:updated"); 
    }); 

}); 

UWAGA: wersje przed 1,0 stosuje się następującą:

$('select').trigger("liszt:updated"); 
+5

FYI: zaktualizowano do wersji 1.0, która teraz używa 'selected: updated' zamiast' liszt: updated' – Henesnarfel

+0

Dzięki Henesnarfel, zaktualizowany do odzwierciedlają nową wersję. –

+0

Natknąłem się tutaj, gdy próbowałem znaleźć sposób, aby wybrać najlepszą aktualnie pasującą opcję z listy wyboru wielu wybranych wyników wyszukiwania (gdy fokus został utracony). Oto [krótkie skrzypce] (http://jsfiddle.net/zFBCy/4/) o moich poszukiwaniach. Nie musisz wywoływać żadnych zdarzeń. Być może jest to przydatne również dla kogoś innego ... :) – Timo

19

Moja odpowiedź jest spóźniona, ale chcę dodać pewne informacje, których brakuje we wszystkich powyższych odpowiedziach.

1) Jeśli chcesz wybrać pojedynczą wartość w wybranym wyborze.

$('#select-id').val("22").trigger('chosen:updated'); 

2) Jeśli używasz kilku wybranych opcji, możesz ustawić wiele wartości jednorazowo.

$('#documents').val(["22", "25", "27"]).trigger('chosen:updated'); 

Informacje zebrane z poniższych linków:
1) Chosen Docs
2) Chosen Github Discussion

+0

Doskonałość! Pracował świetnie. – Garconis

0

Czasami trzeba usunąć bieżące opcje w celu manipulowania wybrane opcje.

Oto przykład jak dołączyć opcje:

<select id="mySelectId"> 
    <option value=""></option> 
    <option value="Argentina">Argentina</option> 
    <option value="Germany">Germany</option> 
    <option value="Greece">Greece</option> 
    <option value="Japan">Japan</option> 
    <option value="Thailand">Thailand</option> 
</select> 

<script> 
    mySelect = $('#mySelectId'); 
    var selected = mySelect.val();       //get current values 
    selected = selected.concat(['Germany','Argentina']); //merge with new values 
    selected = Array.from(new Set(selected));    //make values unique 
    mySelect.val(null);         //delete current options 
    mySelect.val(selected);        //add new options 
    mySelect.trigger('chosen:updated');     //update chosen 
</script> 
Powiązane problemy