[英]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小时”时,对于这种情况,它应动态返回length
, 1
。
@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.