我有一个包含 3 个输入字段、击球、推杆和 GIR 的表单:
<%= form_for(@played_hole) do |f| %>
<%= f.hidden_field :hole_par, value: @hole.par %>
<%= f.label :strokes, "How many strokes?" %>
<%= f.select(:strokes, options_for_select(generate_strokes_array(@hole.par), selected: @hole.par)) %>
<%= f.label :putts, "How many putts?" %>
<%= f.select :putts, options_for_select(generate_putts_array(5), selected: 1), onclick: calculateGIR() %>
<%= f.label :GIR, "Green in Regulation?" %>
<%= f.select(:GIR, [['Yes', 1], ['No', 0]]) %>
<%= f.submit "Next Hole", class: "btn btn-large btn-success" %>
<% end %>
我的目标是一旦用户点击第二个输入,即推杆,自动选择第三个字段(:GIR)。例如,如果这个洞是一个 4 杆洞,他们在 :strokes 字段中选择了 5 个,在 :putts 字段中选择了 2 个,那么我就会知道他们没有在规则中获得果岭。所以,我想自动将 :GIR 选择切换为“否”。
我目前在注册 onclick() 事件时遇到了麻烦。我已添加onclick: calculateGIR()
到 :putts 选择字段,但在 PlayedHole#new 视图中出现此错误:undefined method calculateGIR' for #<#<Class:0xb5a684c4>:0xb591eac8>
我已将此添加到 javascript/played_holes.js 文件中:function calculateGIR() { alert("calculating GIR"); }
但显然它没有被拾取。
基本上,我可以使用一些帮助在视图中调用 javascript(或 jQuery)函数。然后,一旦我获得了该设置,我想弄清楚如何从 :strokes 和 :putts 中提取选定的值来计算 GIR。
对于那些好奇的人,GIR 意味着您在果岭上的杆数比该洞的标准杆少 2 杆(或更少)。即标准杆 3 - 1 杆,标准杆 4 - 2 杆,标准杆 5 - 3(或更少)杆。
我正在运行 Rails 3.2,以防你好奇。
谢谢!