2013-05-10 12 views
5

Im przy użyciu jquery przykuty, i próbuję uzyskać drugą listę rozwijaną, aby wyszarzyć, jeśli pierwszy ma zaznaczone puste pole. Zakładam, że potrzebuję pustej opcji na drugiej liście, aby ją zablokować, ale nie jestem pewien, jak dodać pustą opcję. Oto wybierz opcjęDodawanie pustej opcji do znaczników wyboru szyn

<%= select_tag :equipment, options_for_select(Equipment.all.collect 
              { |e| ["#{e.model} - #{e.serialNum}",e.id, 
              :class =>"#{e.handReceipt}"]}, 
              html_options = {:id=>'equipment'}) %> 

Pierwszy listy rozwijanej pozwala wybrać rodzaj odbioru strony, a z jQuery przykuty, druga lista zawiera tylko rekordy z odpowiednim atrybutem paragonu ręcznie.

Jak dodać pustą opcję do powyższego wyboru?

Edit- Oto, co starałem tak daleko -

<%= select_tag :equipment, 
    options_for_select( [["--",""], 
          Equipment.all.collect{ |e| 
          ["#{e.model} - #{e.serialNum}", 
          e.id, :class =>"#{e.handReceipt}"]}], 
          html_options = {:id=>'equipment'}) %> 

Prowadzi to do nieprawidłowego wyświetlania listy-

<select id="equipment" name="equipment"> 
    <option value="">--</option> 
    <option value="[&quot;M4 - W432156&quot;, 10, {:class=&gt;&quot;Arms Room&quot;}]">[&quot;PSN-13 - 176985&quot;, 1, {:class=&gt;&quot;Commo&quot;}]</option> 
</select> 

zamiast pokazywać wszystkie rekordy w tabeli, po prostu pokazuje pustą opcję i drugą opcję.

<%= select_tag :equipment, 
    options_for_select( :include_blank => true, 
          Equipment.all.collect{ |e| 
          ["#{e.model} - #{e.serialNum}", 
          e.id, :class =>"#{e.handReceipt}"]}, 
          html_options = {:id=>'equipment'}) %> 

wyników w następujący błąd -

C:/Users/Sam/Documents/ruby/btrp/app/views/vehicles/edit.html.erb:19: syntax error, unexpected ',', expecting tASSOC 
          e.id, :class =>"#{e.handReceipt}"]}, 
+0

Zauważ, że twoje 'html_options' jest niepoprawne. Musisz użyć formatu skrótu, więc ': html_options => {: id => 'equipment'}' jest poprawne – daniloisr

+0

Notowane i naprawione. Wcześniej ustawiał poprawnie i nie popełnił błędu. Dzięki za połów. –

Odpowiedz

13

Twoje parametry w options_for_select jest źle, myślę, że to właściwa droga:

<%= select_tag :equipment, 
     options_for_select(Equipment.all.collect { |e| 
          ["#{e.model} - #{e.serialNum}", e.id, 
          { :class =>"#{e.handReceipt}" }]}), 
     :include_blank => true, 
     :id => 'equipment' %> 

Czytaj więcej na:

http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-options_for_select

http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html

+0

Dzięki za cynk. Wszelkie przemyślenia na temat tego, jak uzyskać pustą opcję w wyborze? –

+0

Przepraszam, zapomniałem =) – daniloisr

+1

No cholera. Haha siedziałem próbując zmusić to do pracy przez cały ranek. Myślałem, że include_blank będzie pod opcjami options_for_select. Chyba muszę poświęcić więcej czasu na rozszyfrowywanie składni pomocy. Czytałem i czytałem tę stronę już tysiąc razy. Dzięki za pomoc! –

0

Możesz dodać pustą wartość w ten sposób.

<%= select_tag "category","<option value=''>Category</option>" + options_from_collection_for_select(@store_categories, "id", "name",params[:category].to_i)%> 
Powiązane problemy