0

フォームの送信ボタンをキャプチャして、処理を実行しようとしています(この場合、クレジットカードデータをStripeに送信します)。Orderクラスがあり、新しい注文送信ボタンを押すと、送信がキャプチャされてcaptureSubmitForStripeメソッドに送信されます。その部分はうまく機能しており、コードスニペットは次のとおりです。

# orders.js.coffee:
jQuery ->
  Stripe.setPublishableKey($('meta[name="stripe-key"]').attr('content'))
  order.setupForm()

order =
  setupForm: ->
    $('#new_order').submit ->
      order.captureSubmitForStripe()

  captureSubmitForStripe: ->
    # do more stuff here...

編集フォームの送信ボタンでもこれを機能させたいと思います。これを作成して、現在のフォームから、または少なくとも新しいフォームと編集フォームの両方から送信ボタンをキャプチャするにはどうすればよいですか?

とりわけ、これを試しましたが、機能しません。

order =
  setupForm: ->
    $('#new_order').submit ->
      order.captureSubmitForStripe()
    $('#edit_order').submit ->
      order.captureSubmitForStripe()
4

1 に答える 1

1

新しいオブジェクト$('#new_order')に使用するときのフォームのデフォルトIDであるため、使用に問題はありません。form_for永続化されたオブジェクトの場合、idは次のようになりますedit_order_123。123はオブジェクトのIDです。新しいフォームと編集フォームの両方にクラスを使用することをお勧めします

# set the class
form_for @order, html: { class: 'order-form' } do
  ...

# then just use the class to select the form
$('.order-form').submit -> order.captureSubmitForStripe()
于 2013-02-04T05:53:01.897 に答える