Rails collection_select和值在文本字段中自动添加

时间:2015-09-08 12:48:27

标签: textfield ruby-on-rails-4.2 collection-select

您好我正在使用Collection_select,因为您可以看到它正常工作但我想制作它,所以当我从Item字段中选择1项来自我的数据库中的数据,购买价格和售价将自动添加到文本字段中,如下例所示。

但至于我怎么做,对我来说仍然是一个谜,任何人都可以帮助我,谢谢!任何帮助都会有所帮助!并再次感谢!

enter image description here

我使用的代码

<%= form_for(@sale) do |f| %>
  <% if @sale.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@sale.errors.count, "error") %> prohibited this sale from being saved:</h2>
      <ul>
      <% @sale.errors.full_messages.each do |message| %>
        <li><%= message %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= f.label :item_id %><br>
    <%= collection_select( :sale, :item_id, Item.all, :id, :name, {} ) %>
  </div>

  <div class="field">
    <%= f.label :bought %><br>
    <%= f.text_field :bought %>
  </div>
  <div class="field">
    <%= f.label :sold %><br>
    <%= f.text_field :sold %>
  </div>
  <div class="field">
    <%= f.label :number %><br>
    <%= f.number_field :number %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

1 个答案:

答案 0 :(得分:1)

你可以通过发送ajax请求并从数据库中购买数据然后在各自的字段中显示“买入价格”和“卖出价格”来做到这一点。像这样的东西

 $("#collection_select_id").change(function () {
  $.ajax({
    url: "your_url_where_you_get_your_data",
    method: "GET",
    data: {},
    success: function(data) {
     $("#bought_price_id").val(data.bought_price)
     $("#sold_price_id").val(data.sold_price)
    }
  });
});

由于