操作下拉选项选择

时间:2013-10-15 00:15:53

标签: javascript ruby-on-rails ruby ajax html-select

我正在开发Ruby on Rails应用程序,目前我需要根据下拉项目的选择进行具体操作。

我有以下代码:

<%= collection_select(:cat, :cat_id, @cats, :id, :full_name) %>

当用户选择一个选项时,如何触发特定操作?如何访问该选项的ID并执行特定操作?

有什么建议吗?

谢谢

2 个答案:

答案 0 :(得分:0)

Rails使用资源名称的单数形式创建id,后跟属性的名称。例如。 Post.title => "post_title"

按照您的示例代码,它会产生类似

的内容
<select id="post_cat_id"></select>

请参阅:dom_id

答案 1 :(得分:0)

如果我们有这样的模型:

create_table "doctors", force: true do |t|
    t.string   "name"
    t.string   "last_name"
    t.datetime "created_at"
    t.datetime "updated_at"
end

class Doctor < ActiveRecord::Base
    has_many :appointments
    has_many :users, :through => :appointments

    def full_name
    "#{name} #{last_name}"
  end
end

Home控制器:

class StaticController < ApplicationController
  def home
    @doctors = Doctor.all
  end
end

我们可以在Home内查看:

生成这样的下拉菜单
<div>
    <p>Pick a doctor</p>
    <%= collection_select(:doctor, :id, @doctors, :id, :full_name) %>
</div>

用户从下拉菜单中选择另一个值后,会触发一些操作:

$("#doctor_id").change(function() {
    var selectedVal = $(this).val();

    // Do something depending on selected value
});

就是这样:))