2

我在一个模型中有一堆数据,我想根据集合选择(下拉)框显示这些数据。部分数据如下所示...

class CreateSections < ActiveRecord::Migration
  def change
    create_table :sections do |t|
      t.string :supervisor
      t.string :catagory
      t.string :title
      t.string :description
      t.string :days
      t.string :start_date
      t.string :end_date
      t.string :start_time
      t.string :end_time
      t.string :course_id
      t.string :room
      t.string :building
      t.string :location
      t.string :tuition
      t.string :lab_fee
      t.string :insurance_fee
      t.string :technology_fee

      t.timestamps
    end
  end
end

我的收藏选择看起来像这样......

  collection_select(:section, :section_id, @sections, :id, :title)

所以用户将从下拉列表中选择标题,我想显示描述。理想情况下,我想用 jquery 来做到这一点。

编辑

这是有关 html 外观的更多信息...

 <select id="section_section_id" name="section[section_id]"><option value="1">Long Title</option>
<option value="2"> Alternative Investments for Small Business  NEW</option>
<option value="3">Bookkeeping Basics for the Natural Products Industry  NEW  </option>
...

在 app/assets/javascripts/sections.js 我现在有......

$(function(){
  $("#section_section_id").change(function(){
    alert('wintas');
  })
})

所以现在基于选择的选项,我想显示与该选项关联的值。

4

1 回答 1

2

您可以使用options_for_select将要显示的信息放置在该选项的数据属性中

假设您在表单的上下文中进行了选择

<%= f.select :section, :section_id, options_for_select(@sections.map{ |s| [s.title, s.id, {'data-description'=>s.description}] }) %>

这将生成这样的html

<option value="2" data-description= "description of 2"> Alternative Investments for Small Business  NEW</option>
<option value="3" data-description="description of 3">Bookkeeping Basics for the Natural Products Industry  NEW  </option>

然后就可以用js来展示了

这是一个js的工作演示

http://jsfiddle.net/Tt3TS/

希望有帮助

于 2013-04-03T15:32:09.707 回答