2013-05-10 38 views
5

Im sử dụng chuỗi jquery và Im cố gắng để có danh sách thả xuống thứ hai chuyển sang màu xám nếu đầu tiên có tùy chọn trống được chọn. Im giả sử tôi cần một tùy chọn trống trong danh sách thứ hai cho nó để khóa, nhưng tôi không chắc chắn làm thế nào để thêm một tùy chọn trống. Đây là tùy chọn được chọnThêm tùy chọn trống vào đường ray chọn thẻ

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

Danh sách thứ hai cho phép bạn chọn loại biên nhận tay, danh sách thứ hai chỉ hiển thị các bản ghi với thuộc tính nhận tay thích hợp.

Tôi làm cách nào để thêm tùy chọn trống vào lựa chọn ở trên?

Edit- Dưới đây là những gì tôi đã cố gắng cho đến nay -

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

Điều này dẫn đến một màn hình không đúng các list-

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

Thay vì hiển thị tất cả các bản ghi trong bảng, nó chỉ hiển thị một tùy chọn trống và tùy chọn thứ hai.

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

Kết quả trong các lỗi sau -

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

Lưu ý rằng 'html_options' của bạn sai. Bạn cần phải sử dụng một định dạng băm, vì vậy ': html_options => {: id => 'thiết bị'}' là đúng – daniloisr

+0

Ghi chú và cố định. Nó đã được thiết lập nó đúng cách trước và không ném một lỗi. Cảm ơn cho bắt. –

Trả lời

13

thông số của bạn tại options_for_select là sai, tôi nghĩ đó là đúng cách:

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

Đọc thêm tại địa chỉ:

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

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

+0

Cảm ơn mẹo. Bất kỳ suy nghĩ về làm thế nào để có được một tùy chọn trống vào lựa chọn? –

+0

xin lỗi, tôi quên =) – daniloisr

+1

Thật đáng tiếc. Haha Tôi đã ngồi cố gắng để có được điều này để làm việc cả buổi sáng. Tôi nghĩ include_blank sẽ nằm trong options_for_select. Đoán tôi đã phải mất nhiều thời gian hơn để giải mã cú pháp trợ giúp. Tôi đã đọc và đọc lại trang đó hàng nghìn lần rồi. Cảm ơn đã giúp đỡ! –

0

Bạn có thể nối thêm giá trị trống như thế này.

<%= select_tag "category","<option value=''>Category</option>" + options_from_collection_for_select(@store_categories, "id", "name",params[:category].to_i)%> 
Các vấn đề liên quan