2016-10-24 1 views
0

Je veux créer une fonction qui ajoute la valeur d'un champ de texte à un autre, le problème ici est que j'utilise des formulaires de Ruby on Rails et je ne sais pas s'il est possible d'obtenir l'ID du champ Je veux traiter. Voici mon code:Comment passer les éléments 'form_for' de Ruby on Rails à une fonction Javascript?

Ceci est une forme imbriquée.

<%= 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 %> 

Et voici ma fonction javascript:

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

Répondre

0

Vous pouvez passer this qui représentera le champ que vous voulez.

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

puis dans votre fonction que vous pouvez faire:

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