javascript - 向 Stripe JS 按钮添加事件监听器

标签 javascript ruby-on-rails stripe-payments

<script
src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="pk_test_dNbyQ3qsyTe8IAikxSfnLhBl"
data-amount= <%= number_to_currency(@shopping_cart.total) * 100 %>
data-name="Abound"
data-description="Checkout"
data-image="https://stripe.com/img/documentation/checkout/marketplace.png"
data-locale="auto">
document.querySelectorAll('.stripe-button').addEventListener('click',function(){
  <%= @shopping_cart.clear %>
}

这是一个处理付款的 Stripe 按钮。问题出在事件监听器上。每次我刷新页面或转到不同的页面时,都会执行 ruby​​ 代码并清除我的购物车。有人有主意吗? 即使我更改js使其无效,ruby也会被执行,你也能解释一下吗?

正在加载整页:

    <h1>Shopping Cart Contents</h1>
    <div style="font-size: 14px; "> <%= render :partial => 'shopping_cart_item', :collection => @shopping_cart.shopping_cart_it  ems %> </div>
    <div style="font-size: 18px;"><strong>Total:</strong><%= number_to_currency (@shopping_cart.total) %></div>
  <form>
    <script
    src="https://checkout.stripe.com/checkout.js" class="stripe-button"
    data-key="pk_test_dNbyQ3qsyTe8IAikxSfnLhBl"
    data-amount= <%= number_to_currency(@shopping_cart.total) * 100 %>
>>  data-name="Abound"
    data-description="Checkout"
    data-image="https://stripe.com/img/documentation/checkout/marketplace.png"
    data-locale="auto">
    document.querySelectorAll('.stripe-button').addEventListener('click',function(){
      <%= @shopping_cart.clear %>
    }
    </script>
  </form>

  </div>

编辑: 我最终所做的只是为购物车创建一个新的 View 页面,因为 Ruby 是在服务器端加载的,因此在 js 中嵌入效果不佳。

最佳答案

ruby 运行在服务器上......而不是在浏览器中......javascript 则相反

您的问题是 <%= @shopping_cart.clear %>每次都会在服务器上执行...而不是在浏览器中触发事件时执行。

我建议您使用ajax向服务器发送一些内容,然后根据需要清除该请求中的购物车

关于javascript - 向 Stripe JS 按钮添加事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43312917/

相关文章:

javascript - 禁用 anchor 跳

php - Stripe 结帐不起作用

ios - Facebook 信使 iOS 苹果支付

ruby-on-rails - 如何通过 Ruby 中的代理获取带有用户代理和超时的 URL?

ruby-on-rails - 嵌套模型验证 - 错误不显示

php - 在 Stripe 上测试订阅续订

JavaScript : Jump to method definition using eclipse

javascript - "this instanceof fNOP ? this"在做什么?

javascript - "loop"是跨度内的特殊关键字吗?

ruby-on-rails - Rails accepts_nested_attributes_for child 在验证时没有设置父级