2013-02-01 20 views
5

Mam listę rozwijaną kraju i stanu. Nasz projektant interfejsu użytkownika użył wtyczki jcf, która ukrywa prawdziwe pola wyboru i przekształca się w kontrolkę, która wygląda i działa jak rozwijana lista. Działa dobrze, gdy nie muszę dynamicznie wypełniać tego pola wyboru po stronie klienta.Wybierz (dropdown) z wtyczką jcf

Mam listę rozwijaną kraju i na podstawie wybranej listy moje państwo powinno zostać wypełnione. W przypadku jcf mogłem zobaczyć, że lista rozwijana (która jest ustawiona w lewo na -9999px) jest wypełniona, ale tylko pierwsza opcja pojawia się w kontrolce, która ją zastępuje. Czy ktoś wie, jak wyświetlić/wypełnić zmodyfikowaną kontrolę.

Dzięki,

Odpowiedz

8

Edycja: Wydaje się to odbudować select po zmianie go.

$('#myselectbox')[0].jcf.buildDropdown(); // Rebuild based on options 
$('#myselectbox')[0].jcf.refreshState(); // Updates to current selected 

Mam dokładnie to samo pytanie i jestem w trakcie uzyskiwania odpowiedzi ze źródła.

Ta "wtyczka" jcf.customForms nie zawiera dużej ilości dokumentacji. Prawdopodobnie użyłeś tej samej usługi (psdtohtml) lub podobnej firmy, aby podzielić swój projekt na HTML. To wydaje się być niestandardowym javascriptem związanym z tą usługą.

Wiele można znaleźć, patrząc na źródło lub używając console.debug(jcf.customForms);, ale jeszcze nie znalazłem rozwiązania. Zostanie zaktualizowany, gdy się zorientuję.

Próbowałem wiele rzeczy jak

//jcf.customForms.setOptions(states[0]); 
//jcf.customForms.refreshAll(); 
//jcf.customForms.refreshElement(states[0]); 
//states.refreshState(); 

jak dla poprzedniej odpowiedzi, wydaje się dziwne, trzeba initTabs(); gdy po prostu chcesz odświeżyć select.

+0

To działało również dla mnie! destroyAll() wraz z refreshAll() również działały dla mnie. (jcf.customForms.destroyAll(); jcf.customForms.replaceAll();) –

+0

Tak się cieszę. Umieram, żeby wymyślić te ramy. Wolę po prostu bezpośrednio wybrać element (document.getElementById ("myselectbox"). Jcf), ale wiedząc o tym, jest to ratownik. –

+0

Zadziałało również dla mnie, ponieważ Daniel zniszczył wszystko i zastąpił je, nie znosząc elementów na iPadzie? – joesk

1

Trzeba zdefiniować następujące funkcje po raz kolejny podczas wypełniania stan:

jcf.customForms.replaceAll(); 
initSlideShow(); 
initInputs(); 
initSameHeight(); 
initTabs(); 
fixSelect();initCounter(); 
initOpenClose(); 
+0

Dziękuję zarówno. – user1760153

0

Tylko jedna linia działa dla mnie. i jego ogólne rozwiązanie.

$(document).ajaxComplete(function() { 
    jcf.customForms.replaceAll(); 
}); 

Pozdrawiam !!!

1

To jest kod, który zadziałał dla mnie. Kod ustawić wartość select pól i następnie refresh i zmienić wartość za pomocą jcf, select pola zostaną wybrane z opcją które mają wartość 42

jQuery("#select-element").val("42"); 

jcf.getInstance(jQuery("#select-element")).refresh()