我正在使用条纹为我正在制作的网站筹集资金。
以下是我的观点:
%script.stripe-button{"data-amount" => "10000", "data-description" => "A Generous Donation", "data-key" => Rails.configuration.stripe[:publishable_key], src: "https://checkout.stripe.com/v2/checkout.js"}
%br
%b Amount:
%br
%input
%script.stripe-button{"data-amount" => "", "data-description" => "A Generous Donation", "data-key" => Rails.configuration.stripe[:publishable_key], src: "https://checkout.stripe.com/v2/checkout.js", style:"padding-left: 30px;"}
这是我的控制器:
def create
# Amount in cents
@amount = 500
customer = Stripe::Customer.create(
:email => 'example@stripe.com',
:card => params[:stripeToken]
)
charge = Stripe::Charge.create(
:customer => customer.id,
:amount => @amount,
:description => 'Rails Stripe customer',
:currency => 'usd'
)
rescue Stripe::CardError => e
flash[:error] = e.message
redirect_to charges_path
end
对于我的第一个按钮,我正在尝试将数据量发送到金额变量。对于第二个,我试图从输入框中收集一个值,并在条带按钮中设置@amount变量和data-amount标签来收集付款。我该怎么做?
答案 0 :(得分:0)
这可以通过一些JS轻松完成。只需处理每个按钮上的click事件,处理点击时,在第一种情况下使用data-amount
设置值,或在第二种情况下获取input
值。然后
[编辑]
将变量发布到您的控制器之后,只需从您发布的任何地方获取它,因此如果您使用了
的表单<input type="hidden" name="amount" />
您的数据,请使用
@amount = params[:amount]
在控制器中获取值。
[/编辑]
答案 1 :(得分:0)
根据你的描述,这应该与控制器无关。
一旦输入中有一个有效的数字输入,你看起来只需要设置第二个按钮的数量。
这可以通过jQuery轻松完成。演示代码:
$('#that_input').on('focusout', function(){
if typoeof($(this).val()) == 'number'
$('#second_button').data('amount', $(this).val())
});
这段代码的作用是在输入完成和聚焦时将输入值分配给第二个按钮的data-ammount属性,如果该输入是有效数字。