单击Rails后激活Javascript功能form_for选择字段
Activate Javascript function after clicking on Rails form_for select field
>我有一个包含 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 杆,在 :p utts 字段中选择了 2 杆,那么我会知道他们没有得到绿色规则。 所以,我想自动将 :GIR 选择切换为"否"。
我目前在注册 onclick() 事件时遇到问题。 我已将onclick: calculateGIR()
添加到 :p utts 选择字段中,但我在我的 PlayedHole#new 视图中收到此错误:undefined method calculateGIR' for #<#<Class:0xb5a684c4>:0xb591eac8>
我已将其添加到javascript/played_holes.js文件中:function calculateGIR() { alert("calculating GIR"); }
但显然它没有被拾取。
基本上,我可以使用一些帮助在视图中调用javascript(或jQuery)函数。 然后,一旦我得到该设置,我想弄清楚如何从 :strokes 和 :p utts 中提取所选值来计算 GIR。
对于那些好奇的人来说,GIR 意味着您在果岭上的杆数比洞的标准杆高 2(或更少)。 即标准杆 3 - 1 杆、标准杆 4 - 2 杆、标准杆 5 - 3(或更少)冲程。
我正在运行Rails 3.2,以防您好奇。
谢谢!
您需要将calculateGIR()
放在引号中:
<%= f.select :putts, options_for_select(generate_putts_array(5), selected: 1), onclick: "calculateGIR()" %>
onclick
HTML 属性应该是一个将在单击时执行的 JavaScript 代码字符串。相反,您正在尝试调用 Ruby 方法,calculateGIR
.
替代我在你问题中的评论:
尝试:
<%= f.select :putts, options_for_select(generate_putts_array(5), selected: 1), onclick: 'calculateGIR()' %>
, 放入calculateGIR()
引号。
最好不要像你展示的那样将javascript放入你的HTML中。 执行此操作的简单方法是将id
分配给select
元素,并在更改事件中应用calculateGIR
逻辑。
像下面这样的东西更好:
在您看来:
<%= f.select :putts, options_for_select(generate_putts_array(5), selected: 1), {}, id: 'putts' %>
在您的javascript/played_holes.js
$(document).ready(function() {
$('#putts').on('change', function() {
// Place definition of calculateGIR() here.
});
});
- 我如何选择/点击一个带有for=“”的元素"属性[量角器]
- 在v-for中选择中选择框的第一个选项
- 使用 for 循环用逗号分隔的值填充选择元素
- 在 for 循环中选择项目
- 从数组中随机选择,但在for循环中选择是不可能的;没有按预期工作
- 我想调用javascript函数,当选择选项(它基于for循环)只被选择一次时
- 反应构建选择输入使用 for 循环
- JQuery:如何在 jquery 选择器中使用 for 循环变量
- 选择未在 Chrome 中执行 onclick for 选项的元素
- 未定义的 ajax post with for 循环和字符串选择器
- 在 jQuery 中,我怎样才能正确地将选择器用作 for 循环中的变量
- JavaScript,使用 for 循环返回选定值的选择选项
- 对类选择的元素数组使用FOR循环,并对每个元素调用函数
- 在for循环中从javascript中选择值
- 使用for循环在javascript中选择dom
- Don't使用谷歌托管的CDN jQuery for Shopify-what'这是另一种选择
- 选择并向Div'添加函数;s通过For Loop
- 如何使第一个单选按钮在默认情况下选择一个列表中建立的for in循环使用trick
- OneDrive for Business是否有客户端javascript库提供文件/文件夹选择器控件?
- For循环选择特定的id并更改它们的样式- js