Backbone.js 条纹信用卡处理错误突然发生

Backbone.js 条纹信用卡处理错误突然发生,backbone.js,coffeescript,stripe-payments,Backbone.js,Coffeescript,Stripe Payments,在使用stripe处理信用卡时,我在浏览器上遇到此错误 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 Str

在使用stripe处理信用卡时,我在浏览器上遇到此错误

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
我的代码使用主干和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')

整个过程都是这样的。有什么解释吗

前面的一个问题 表明@$是正确的选择,@$直到最近还为我工作


还有其他人在Stripe上遇到过这个问题吗?

如果类中的方法是
onPaymentSubmit
,请确保类中有一个适当的
el
元素来包装您的
#付款表单
元素

您的HTML、CoffeeScript结构应如下所示:

<div class='payment'>
    <form id='payment-form'>...</form>
</div>
使用
@$
查找元素时,它会开始查看视图的
el
属性。所以基本上在这种情况下,它看起来像:

   @$("#payment-form") === $(".payment #payment-form")

我猜测您的
#支付表单
超出了主干视图的范围

11月6日前后您的代码发生了什么变化?什么都没有。代码已经保持了4个月。这就是让我惊讶的地方。这个错误是在stripe.js中从深层抛出的。Stripe支持说没有其他人报告过类似的问题。表单的HTML是什么样子的?错误消息表明,
正在触发问题。有任何主干、下划线、jQuery。。。发生升级?输入元素在我的付款表单中。这条线在过去4个月一直在那里。我所在的库没有版本更改。不确定stripe.js是否在内部依赖任何主干、下划线库,并且版本不匹配。我的付款表单不是el的直系子代,而是节点层次结构中的孙子。任何嵌套子项都应该仍在作用域中,对吗?是的,任何嵌套子项都应该在作用域中。无论如何,
@$(“.
$(“.
之间的唯一区别是它看起来在您的视图范围内。在初始化时,请尝试
控制台.log(@$(“#付款表单”)
以确保您的付款表单在您的视图范围内。是的,我可以看到$(“#付款表单”)和@$(“付款表单”)都在范围内-这意味着它们都引用了相同的形式和数据值。我看到的唯一区别是“上下文”对象的值。其中一个是“文档”,而另一个是nil值。
class Payment extend Backbone.View

   el: ".payment"  // Here .payment is parent element to #payment-form

   ...

   onPaymentSubmit: => ...
   @$("#payment-form") === $(".payment #payment-form")