Rails: после ввода показать разницу - PullRequest
0 голосов
/ 16 сентября 2018

Рельсы Новичок здесь.

У меня есть форма, в которой пользователь будет вводить ряд результатов в виде таблицы, и я хочу, чтобы она показывала разницу между ожидаемым результатом и результатом ввода при его переходе к следующему вводу.

Так что я ищу некоторые после обновления триггера для запуска JS / AJAX, но я не могу собрать его вместе.

Я хотел бы, чтобы разница между @ range1_af_ecc.required и фактическим вводом былаотображается в столбце после фактического ввода.

<%= form_tag update_calibration_results_customer_asset_calibration_header_calibration_results_path(@customer.id,@asset.id,@calibration_header.id), method: :put do %>
    <div class="table-responsive">
  <table class="table table-hover table-sm table-responsive-sm word-break: break-all">
    <thead>
      <tr>
        <th>Sequence</th>
        <th>Actual</th>
        <th>Difference</th>
        </tr>
    </thead>

<%  @range1_asfound_eccentricity.each  do |range1_af_ecc| %>
        <tr>
          <%= fields_for "range1_af_eccs[]", range1_af_ecc do |f| %> 
          <td><%= range1_af_ecc.sequence %></td>
          <td><%= f.number_field :actual, step: :any %></td>
          <td> DIFFERENCE TO GO HERE </td>
          <% end %>
        </tr>
      <% end %>     
    </tbody>
  </table>
  <%= submit_tag "Save" %>
 <% end %>

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 17 сентября 2018

Вы можете использовать jquery blur событие

blur событие вызывается, когда элемент теряет фокус

$(".class-of-input-where-user-enters-value").blur(function(){
  var input = $(this)
  var val = input.val()
  var row = input.parents('tr').eq(0)

  $.ajax({
    url: "/url",
    data: { value: val }

  }).done(function( response ) {
    row.find(".class-of-element-where-difference-goes").text(response)
  });

  // or you can run some JS code here to calculate difference
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...