如何将Ruby on Rails的form_for'元素传递给Javascript函数?

时间:2016-10-24 15:53:07

标签: javascript ruby-on-rails ruby

我想创建一个将文本字段的值添加到另一个的函数,这里的问题是我使用Ruby on Rails中的表单,我不知道是否可以从中获取ID我想要处理的字段。 这是我的代码:

这是一种嵌套形式。

<%= f.fields_for :invoices do |invoice_form| %>
  <br>
    <%= invoice_form.label :in_number %>
    <br>
    <%= invoice_form.text_field :in_number %>
    <br>
    <%= invoice_form.label :in_amount %>
    <br>
    <%= invoice_form.text_field(:in_amount,:onkeypress => "myFunction(document.getElementById('in_amount'))") %>
    <br>
    <%= invoice_form.label :in_date %>
    <br>
    <%= invoice_form.date_select :in_date %>
    <br>
    <%= invoice_form.label :in_meshHr %>
    <br>
    <%= invoice_form.text_field :in_meshHr %>
  <% end %>

这是我的javascript函数:

function myFunction(text) {
    var amount = parseFloat($('#purchase_order_po_amount').val());
    var amount1 = document.getElementById(text).value;
    alert(amount1+amount);
}

1 个答案:

答案 0 :(得分:0)

您可以传递this代表您想要的字段。

<%= invoice_form.text_field(:in_amount,:onkeypress => "myFunction(this)") %>

然后在你的功能中你可以做到:

function myFunction(element) {
  var amount = parseFloat($('#purchase_order_po_amount').val());
  var amount1 = $(element).val();
  alert(amount1+amount);
}