2013-05-10 11 views
5

Im utilizzando jquery concatenato e Im cercando di ottenere il secondo elenco a discesa in grigio se il primo ha selezionato un'opzione vuota. Immagino di aver bisogno di un'opzione vuota nel secondo elenco per bloccarlo, ma non sono sicuro di come aggiungere un'opzione vuota. Qui è l'opzione SelezionaAggiunta di un'opzione vuota ai binari selezionare il tag

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

Il primo elenco a discesa consente di selezionare il tipo di ricezione mano, e con jQuery incatenato, il secondo elenco mostra solo i record con l'attributo ricezione mano appropriata.

Come aggiungere un'opzione vuota a quanto sopra selezionato?

Modifica- Ecco quello che ho provato finora -

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

Ciò si traduce in un display improprio della lista-

<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> 

Invece di mostrare tutti i record nella tabella, mostra solo un'opzione vuota e la seconda opzione.

<%= 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'}) %> 

risultati il ​​seguente errore -

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

Nota che il tuo 'html_options' è sbagliato. È necessario utilizzare un formato hash, quindi ': html_options => {: id => 'equipment'}' è il corretto – daniloisr

+0

Notato e corretto. Lo stava configurando correttamente prima e non ha generato un errore. Grazie per la cattura. –

risposta

13

I suoi parametri a options_for_select è sbagliato, io credo che sia la strada giusta:

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

saperne di più su:

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

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

+0

Grazie per il suggerimento. Qualche idea su come ottenere un'opzione vuota nella selezione? –

+0

scusate, ho dimenticato =) – daniloisr

+1

Beh, dannazione. Haha Sono stato seduto cercando di farlo funzionare tutta la mattina. Pensavo che l'include_blank si trovasse sotto options_for_select. Suppongo che dovrò sprecare altro tempo nella decifrazione della sintassi di aiuto. Ho letto e riletto quella pagina già mille volte. Grazie per l'aiuto! –

0

È possibile aggiungere il valore vuoto come questo.

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