6

Używam simple_form w mojej aplikacji rails. Chcę wyłączyć określoną wartość w menu rozwijanym.Jak wyłączyć określoną wartość w menu rozwijanym za pomocą simple_form?

Oto część kodu

= simple_form_for(@organization,url: admin_organization_path) do |f| 
= f.input :hospital_name, input_html: { class: "form-control"} 
= f.input :parent, collection: @organizations, input_html: { class: "form-control", id: "chosen-select-speciality"} 

Próbowałem za pomocą :disabled => @organizations.first ale nie powiodło się. Czy istnieje jakakolwiek inna metoda użycia.Zobowiązująco pomóż mi. dzięki.

+0

Witam, Czy korzystasz z "wybranych szyn"? –

Odpowiedz

6

Simpleform budowniczy dla zaznaczania wykorzystuje wartość każdej z opcji, aby porównać z wartością atrybutu wyłączonego, więc po prostu trzeba użyć id organizacji, aby wyłączyć żądaną opcję:

= simple_form_for(@organization,url: admin_organization_path) do |f| 
= f.input :hospital_name, input_html: { class: "form-control"} 
= f.input :parent, collection: @organizations, input_html: { class: "form-control", id: "chosen-select-speciality"}, disabled: @organizations.first.id 

Jeśli chcesz wyłączyć kilka opcji dla selectbox, możesz ręcznie zbudować listę opcji wbudowanych lub używając pomocnika i użyć go jako atrybutu dla danych wejściowych:

= f.input :parent, collection: @organizations.map{|o| [o.id, o.name, {disabled: o.id.in?([1,21,10])}]}, input_html: { class: "form-control", id: "chosen-select-speciality"} 
+0

działa, ale jak mogę wyłączyć wiele organizacji. – vjnan369

+0

@ vjnan369 Zaktualizowałem moją odpowiedź – BitOfUniverse

+0

dzięki @BitOfUniverse to działa – vjnan369

3

Za pomocą JavaScript można łatwo wyłączyć określoną wartość w rozwijanej jak:

$(/* option selector */).prop('disabled', true); 

Zobacz w action

Powiązane problemy