Ввод Rails number_field_tag ​​недействителен - PullRequest
0 голосов
/ 10 сентября 2018

У меня есть эта вложенная форма:

  <div class="nested-fields">
      <div class="row">
        <div class="col-sm-3">
          <%= select_tag "ingredients", "", class: 'ingredients'%>
        </div>
        <div class="col-sm-3">
          <%= number_field_tag "quantity", id: "quantity"%>
        </div>
        <div class="col-sm-2">
          <%= f.label :price, id: 'price' %>
        </div>
        <div class="col-sm-2">
          <%= f.label :total_amount, id: "total_amount", readonly: true %>
        </div>
        <div class="col-sm-2">
          <%= link_to_remove_association "Remove", f,  class: "btn btn-sm btn-danger" %>
        </div>
    </div>
  </div>

Когда я ввожу значение для количества, оно вычисляет итоговую сумму.

document.addEventListener("turbolinks:load", function() {
  $('#quantity').on('keyup',function(){
   var quantity = $(this).val();
   var price = $('#price').val();
   var total = (quantity*price)
   $('#total_amount').html(total);
});
});

Поле количества является десятичным:

t.decimal :quantity, :decimal, :precision => 8, :scale => 2

Но когда я ввожу значение в поле количества, я получаю на консоли:

Указанное значение "{: id = \ u003E \" Кол-во \ ", : input_html = \ u003E {: value = \ u003E \ "1.00000000 \"}} "недопустимо число. Значение должно соответствовать следующему регулярному выражению: - (\ d + | \ d + \ d + |.. \ D +)? (? [ЕЕ] [- +] \ d +)

Почему это происходит? Как я могу исправить?

1 Ответ

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

number_field_tag ​​(имя, значение = ноль, параметры = {})

Вам необходимо исправить number_field_tag, как показано ниже

<%= number_field_tag "quantity", nil, id: "quantity" %>

Кроме того, вы не можете извлечь значения price и total, определив как метки . Вы должны определить их как поля ввода

<%= f.text_field :price, id: 'price' %>
<%= f.text_field :total_amount, id: "total_amount", readonly: true %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...