繁体   English   中英

根据下拉选择动态获取值

[英]Dynamically fetch a value based on drop down selection

我有一个带有下拉菜单的表单,该菜单允许用户选择要预订的物品的价格。 我让stripe处理付款。 我想根据选择动态获取length

<%= form_tag pages_next_url(@booking), :length => params[:length] do %>

    <div class="input-field">
      <!--<%= label :length, "How long will you stay?" %>-->
      <%= select_tag "length", options_for_select(@garage_times.map { |obj| [obj['time'], obj['value']] }) %>
    </div>

    <%= hidden_field_tag :garageid, @garage.id %>

    <script src="https://checkout.stripe.com/checkout.js" class="stripe-button"
            data-key="<%= Rails.application.secrets.stripe_publishable_key %>"
            data-description="Payment"
            data-amount= <%= garage.weekday*100*length %> <-- need to get length (integer) dynamically 
            data-locale="auto"
            data-email= <%= current_user.email %> ></script>
<% end %>

在我的控制器中,列出了值。 选择“ 1:00小时”时,对于这种情况,它应动态返回length1

@garage_times = [
 {"value" => 1, "time" => "1:00 hour"},
 {"value" => 2, "time" => "2:00 hours"},
 {"value" => 3, "time" => "3:00 hours"},
 {"value" => 4, "time" => "4:00 hours"}
]

我了解它需要AJAX / JS才能动态检索值。 我做了一些研究,并观看了Railscast的动态形式。 但是,这对我的情况没有帮助。 我看到的所有示例都是从model中检索值。 另外,我知道将计算值放在控制器中也是可以的,但是最重要的是允许用户在输入付款信息时看到“付款”按钮上的总金额。

请指导我。 我对JS和AJAX的了解很少。 谢谢。

编辑:我仍然无法解决此问题。

似乎可以避免使用AJAX并使用选择列表value 然后使用length值更新按钮。

您可以在jQuery中执行以下操作:

$('#length').on('change', function() {
  weekday_rate = $('#weekday_rate').html();
  length = $(this).val();
  $('.stripe-button').attr('data-amount', weekday_rate * 100 * length)
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM