2

フォームに Zurb Foundation の Abide 検証を使用しています。フォームをレンダリングすると、フォームにはnovalidate属性があります。で属性を削除しました

$('#new_user').removeAttr('novalidate')

ページを更新しましたが、送信できません。を追加する必要があることがわかりまし$('#new_user').validate()たが、どちらも機能しませんでした。代わりに、novalidate を追加しました。

$("#new_user").removeAttr('novalidate')

$( ->
  subscription.setupForm()

  subscription =
    setupFrom: ->
      $('#new_user').submit ->
        $('input[type=submit]').attr('disabled', true)
        if $('#card_number').length
          subscription.processCard()
          false
        else
          true

    processCard: ->
      card =
        number: $('#card_number').val()
        cvc: $('#card_code').val()
        expMonth: $('#card_month').val()
        expYear: $('#card_year').val()
      Stripe.createToken(card, subscription.handleStripeResponse)

    handleStripeResponse: (status, response) ->
      if status == 200
        $('#subscription_stripe_card_token').val(response.id)
        $('#new_subscription')[0].submit()
      else
        $('#stripe_error').text(response.error.message)
        $('input[type=submit]').attr('disabled', false)
)

フォームの始まり

= form_for(resource, as: resource_name, url: registration_path(resource_name), data: {abide: true}) do |f|
  = devise_error_messages!
  = hidden_field_tag 'plan', @plan
  .field
    = f.label :name, 'Full name'
    = f.email_field :name, autofocus: true, required: true, pattern: 'name'
    %small.error
      You must enter in your full name
...
4

0 に答える 0