使用Stripes付款流程示例时出错

时间:2013-08-28 23:04:17

标签: javascript jquery stripe-payments

我正在使用Stripe文档located here中的代码示例。但是,当处理$form.get(0).submit();时,我收到此错误。

Uncaught TypeError: Property 'submit' of object #<HTMLFormElement>
is not a function

我的代码如下:

var stripeResponseHandler = function(status, response) {
  var $form = $('#payment-form');

  if (response.error) {
    // Show the errors on the form
    $form.find('.payment-errors').text(response.error.message);
    $form.find('button').prop('disabled', false);
  } else {
    // token contains id, last4, and card type
    var token = response.id;
    console.log(token);
    // Insert the token into the form so it gets submitted to the server
    $form.append($('<input type="hidden" name="stripeToken" />').val(token));
    // and re-submit
    $form.get(0).submit();    **//Error happens here**
  }
};

jQuery(function($) {
  $('#payment-form').submit(function(e) {
    var $form = $(this);

    // Disable the submit button to prevent repeated clicks
    $form.find('#payment-button').prop('disabled', true);

    Stripe.createToken($form, stripeResponseHandler);

    // Prevent the form from submitting with the default action
    return false;
  });
});

我做错了什么?

1 个答案:

答案 0 :(得分:0)

在你收到错误的行上,请尝试这样做:

jQuery($form.get(0)).submit();

你的问题是你获得了第一个HTML元素,但为了在其上调用“submit”,你需要用jQuery包装它。