simple_form f.association as :: radio_buttons具有不同的值和id用于jQuery操作

时间:2013-03-29 18:26:09

标签: jquery ruby-on-rails radio-button associations simple-form

继续this(其中employee belongs_to role并且根据该角色有薪水)我想让我的New Employee form更具互动性:我希望salary字段的值根据从单选按钮组中选择的role进行更改。

我的表单现在看起来像这样:

<%= simple_form_for(@room) do |f| %>
  <%= f.input :name, label: 'Full Name', :required => true %>
  <%= f.association :role, as: :radio_buttons, :required => true %>
  <%= f.input :salary, label: 'Salary', :required => true %>
  <%= f.button :submit %>
<% end %>

我的employees.js.coffee文件包含以下代码:

jQuery ->
  $('#employee_employee_role_id_1').click ->
    $(document.getElementById('employee_salary')).val(15)

我将值硬编码以确保表单字段ID没有问题。

我需要的是让.click方法适用于所有#employee_employee_role_id_X字段(其中X是每个单选按钮的编号),并且传递给.val()的值为{{1 }}

但是,作为Rails和js / jQuery的新手,我很无能为力。

1 个答案:

答案 0 :(得分:0)

好的,我设法完成了这项工作,但我完全不相信这是最好的方法。这是:

在表单中,我刚刚添加了value_method: :salary

<%= f.association :role, as: :radio_buttons, value_method: :salary, :required => true %>

并在我的.js.coffee文件中:

jQuery ->
  $("input[name='role[role_id]']").change ->
    $(document.getElementById('salary')).val(($("input:radio[name='role[role_id]']:checked").val()))

如果存在,请随时发表评论或提供更好的答案! :)