使用条带处理信用卡时,我在浏览器上收到此错误。
Uncaught InvalidStateError: Failed to read the 'selectionDirection' property from 'HTMLInputElement': The input element's type ('hidden') does not support selection.
Stripe.utils.r.serialize
Stripe.utils.r.serialize
Stripe.utils.r.serialize
Stripe.utils.r.serialize
Stripe.ajaxJSONP
e.request
t.create
n.createToken
Acpremium.Views.FyUpgradeCCCaptureView.FyUpgradeCCCaptureView.onPaymentSubmit
p.event.dispatch
g.handle.h
我的代码使用Backbone& CoffeeScript调用Stripe。我的代码(如下所示)正在运行&处理付款至2014年11月6日。从那时起,上述错误已经开始发生。
我的代码中的条带调用:
onPaymentSubmit: (event) =>
event.preventDefault()
$("*").addClass("busy")
paymentForm = @$('#payment-form')
paymentForm.find('button').prop('disabled', true)
Stripe.card.createToken paymentForm, @stripeResponseHandler
false
如果我更改了代码
paymentForm = @$('#payment-form')
到
paymentForm = $('#payment-form')
处理过程。这有什么解释吗?
早期的stackoverflow问题How to fit Stripe into Backbone View? 表示@ $是正确的方式,@ $直到最近才为我工作。
还有其他人在Stripe上遇到过这个问题吗?
答案 0 :(得分:1)
如果onPaymentSubmit
是您班级中的一种方法,请确保您的班级有适当的el
元素包裹您的#payment-form
元素。
您的HTML,CoffeeScript结构应如下所示:
<div class='payment'>
<form id='payment-form'>...</form>
</div>
和CS:
class Payment extend Backbone.View
el: ".payment" // Here .payment is parent element to #payment-form
...
onPaymentSubmit: => ...
当您使用@$
查找元素时,它会开始查看View的el
属性。所以基本上在这种情况下它看起来像:
@$("#payment-form") === $(".payment #payment-form")
我的猜测是你的#payment-form
超出了Backbone View的范围