Ввод номера rails number_field_tag ​​недействителен

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

  <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

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

The specified value "{:id=\u003E\"quantity\", :input_html=\u003E{:value=\u003E\"1.00000000\"}}" is not a valid number. The value must match to the following regular expression: -?(\d+|\d+.\d+|.\d+)([eE][-+]?\d+)?

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

0
0
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

number_field_tag(name, value = nil, options = {})

Вам необходимо исправить свой 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 %>

Спасибо за Ваш ответ. Ошибка исчезла с консоли, но total_amount всегда обновляется до 0. Если я изменю на <% = f.text_field: price, id: 'price'%> <% = f.text_field: total_amount, id: "total_amount", только для чтения : true%> цена и total_amount больше не обновляются, я могу вводить значения только вручную

Mirco Cattabriga 10.09.2018 08:53

@Catmal Попробуйте отладить функцию. Проверьте, вызывается ли функция.

Pavan 10.09.2018 08:55

Проблема в другом. <% = number_field_tag ​​"amount", nil, id: "amount"%> исправляет ошибку, решение которой я просил. Я собираюсь принять ответ

Mirco Cattabriga 10.09.2018 09:03

Другие вопросы по теме