0
<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 %>
}
これは支払いを処理するストライプボタンです。問題はEventListenerです。ページをリフレッシュするか、別のページに移動するたびにルビーコードが実行され、カートがクリアされます。誰にでもアイデアはありますか? jsを無効にするように変更しても、ルビーが実行されますが、これについても説明できますか?Stripe JSボタンにイベントリスナーを追加
全ページがロードされている:
<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>
編集:私はRubyはうまくjsファイルに埋め込まれて再生されないため、サーバー側にロードされているので、ちょうどカート用の新しいビュー・ページを作成してやってしまった何を 。
この補間はどのように評価されますか?ページを読み込むときに実際のHTMLには何が入っていますか? –
ボタンにイベントリスナーを追加すると、ページが更新されたときにカートがカートで消去されるのはどうなりますか?これは[XY問題]のように聞こえます(https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) – charlietfl
@aluanフルファイルを追加しました – user7811328