使用Rails& amp;基于下拉选择自动填写表单字段咖啡

时间:2014-03-31 02:44:59

标签: javascript ruby-on-rails ruby coffeescript

我是Ruby on Rails和Coffeescript的新手,我正试图“翻译”多年前用VB编写的简单计算器应用程序。用户可以选择几个编织器中的一个,每个编织器具有3个不可更改的参数。然后,选定的编织者的值以及用户填写的其他值将通过几个等式运行,以将结果返回给用户。结果是正确的,但我希望能够让用户在实际运行计算之前看到所选机器的三个值。我想将它们作为表单字段以保持界面的一致性,但如果还有另一种方法可以实现,我就会缺少,我会接受这些想法。

这是我想要更新的表单部分。选择编织器时,我希望自动填写number_of_carriers,carrier_speed和capstan_diameter。每个编织器对象都有存储在数据库中的值。

            <%= f.collection_select :braider_id, Braider.all, :id, :name, {prompt: "Select a Braider"}, data: { braiderChange: true } %></br>
            <%= f.label ("Number of Carriers") %> 
            <%= f.text_field :number_of_carriers %> </br> 
            <%= f.label ("Carrier Speed") %> 
            <%= f.text_field :carrier_speed %> </br>
            <%= f.label ("Capstan Diameter") %>
            <%= f.text_field :capstan_diameter %></br>

这是我写的Coffeescript,用于验证onchange事件是否正常工作。我希望“TEST”成为数据库中的相关值,但我似乎无法弄清楚如何。

$ ->
  $(document).on "change", "[data-braiderChange]", ->
  document.getElementById("braidcalc_number_of_carriers").value = "TEST"
  document.getElementById("braidcalc_carrier_speed").value = "TEST"
  document.getElementById("braidcalc_capstan_diameter").value = "TEST"
  return
return

任何建议都将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:0)

我有一个类似的问题,这个rails cast帮我解决了。尝试实施此http://railscasts.com/episodes/88-dynamic-select-menus

的改编版本