对象不是stripe javascript上的函数

object is not a function on stripe javascript

本文关键字:函数 javascript stripe 对象      更新时间:2023-09-26

好的,所以我按照stripes教程创建一个自定义表单。我的代码如下为javascript。现在,我的信用卡字段是更大表单的一部分,而不仅仅是这些字段。它的ID是payment-form,你会认为它会在下面的代码中。

我的问题是,当代码运行一切工作,直到这一行:$form.get(0).submit();,我收到这个错误:Uncaught TypeError: object is not a function我试图删除一些东西,使它:$form.submit,但这导致了一个无限循环。

那么我需要做些什么来解决这个问题呢?是什么导致了这个问题?

My Code:

<script type="text/javascript">
Stripe.setPublishableKey('<?php echo $key; ?>');
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('#submit').prop('disabled', false);
  } else {
    // token contains id, last4, and card type
    var token = response.id;
    // Insert the token into the form so it gets submitted to the server
    $form.append($('<input type="text" name="stripeToken" />').val(token));
    $form.find('[data-stripe]').val('');
    // and re-submit
    $form.get(0).submit();
  }
};
jQuery(function($) {
  $('#payment-form').submit(function(event) {
    var $form = $(this);
    // Disable the submit button to prevent repeated clicks
    $form.find('#submit').prop('disabled', true);
    Stripe.card.createToken($form, stripeResponseHandler);
    // Prevent the form from submitting with the default action
    return false;
  });
});
</script>

将提交按钮的id/名称更改为其他名称,即name="btnSubmit"