函数调用回调内部提交事件 - jquery

时间:2017-08-03 09:52:23

标签: javascript jquery forms stripe-payments jquery-events

所以我要做的是在submit事件中调用一个带回调的函数。发生的事情是回调函数在提交事件之后完成,我希望反之亦然。

stripeResponseHandler = function(status, response) {;
    var $form = $('#new-card-details-form');
    if (response.error) {
        addErrorMessage(response.error.message);
        return false;
    } else {
        var token = response.id;
        $form.append($('<input id="token" type="hidden" name="token">').val(token));
      }
};

$(document).ready(function() {
   $('#new-card-details-form *').removeAttr('name');
   Stripe.setPublishableKey('key');
   var $form = $('#new-card-details-form');

   $(document).on('submit', '#new-card-details-form', function(e) {
       if (!$('#token').val()) {
           Stripe.card.createToken($form, stripeResponseHandler);
           if (!$('#token').val()) {
               e.preventDefault();
           }
       }
   });
});

所以这里发生的是表单在第二次点击时提交,因为在我检查令牌存在时的第一次点击它还不存在因为stripeResponseHandler函数将在提交事件之后完成。有没有办法可以让它在第一次点击时工作?我尝试使用unbind()在stripeResponseHandler中提交表单但是也没有用。

0 个答案:

没有答案