我正在使用Stripe接受我的Rails 3应用程序中的付款 . 条纹需要这个coffeescript:
jQuery ->
Stripe.setPublishableKey($('meta[name="stripe-key"]').attr('content'))
video.setupForm()
video =
setupForm: ->
$('#new_video input:submit').click ->
$(this).addClass('wasclicked')
$('#new_video').submit ->
clickedBtn = $(this).find('.wasclicked')
if clickedBtn.attr('name') != 'back_button' && $('#card_number').length
video.processCard()
clickedBtn.removeClass('wasclicked')
false
else
true
processCard: ->
card =
number: $('#card_number').val()
cvc: $('#card_code').val()
expMonth: $('#card_month').val()
expYear: $('#card_year').val()
Stripe.createToken(card, video.handleStripeResponse)
handleStripeResponse: (status, response) ->
if status == 200
$('#video_stripe_card_token').val(response.id)
$('#new_video')[0].submit()
else
$('#stripe_error').text(response.error.message)
$('input[type=submit]').attr('disabled', false)
在我的应用程序中,如果向客户收取的费用为0,则条带信用卡字段将被隐藏,而不需要成功提交表单 . 我的控制器中的此声明说明了这一点:
@video.save if @video.all_valid? && ((@total > 0 && @video.save_with_payment(@total)) || @total == 0)
这是我遇到的问题:当收费为0,并且我的表单中不需要付款时,我点击提交按钮提交表单,没有任何反应 . 我只需单击并单击即可,无论如何都没有响应 . 但是,当我重新加载页面时,表单已成功提交 .
我删除了Stripe的coffeescript文件(上面),然后在这个实例中提交按钮 . 那么如何在此示例中禁用coffeescript? “if”语句是否会进入我的控制器或coffeescript?
1 回答
在您的提交事件中,返回false会阻止表单提交 . 如果您不想要此行为,请返回false以外的任何值 . 在这种情况下,如果您的费用为0,听起来您只需要一起绕过处理,这就是您需要的: