我在一个模型中有一堆数据,我希望根据集合选择(下拉)框显示。部分数据看起来像这样......
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');
})
})
所以现在基于所选的选项,我想显示与该选项相关联的值。
答案 0 :(得分: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的工作演示
希望有所帮助