在提交时更新隐藏字段

时间:2018-03-17 22:33:09

标签: javascript jquery stripe-payments stripe.js

我正在使用Stripe.js来创建令牌。我想通过隐藏字段将此标记传递到下一页。不幸的是,隐藏字段不会像应该的那样更新onchange。

var stripe = Stripe('pk_test_pTMOD3umdVw9RkEYB35tz28X');
var elements = stripe.elements();

var card = elements.create('card', {hidePostalCode: true});
card.mount('#card-element');

var inputs = document.querySelectorAll('input.field');
Array.prototype.forEach.call(inputs, function(input) {
  input.addEventListener('focus', function() {
    input.classList.add('is-focused');
  });
  input.addEventListener('blur', function() {
    input.classList.remove('is-focused');
  });
  input.addEventListener('keyup', function() {
    if (input.value.length === 0) {
      input.classList.add('is-empty');
    } else {
      input.classList.remove('is-empty');
    }
  });
});

function setOutcome(result) {
  var errorElement = document.querySelector('.error');
  errorElement.classList.remove('visible');

  if (result.token) {
    document.getElementById("cc_token").value = result.token.id;
  } else if (result.error) {
    errorElement.textContent = result.error.message;
    errorElement.classList.add('visible');
  }
}

card.on('change', function(event) {
  setOutcome(event);
});

document.querySelector('#registrationForm').addEventListener('submit', function(e) {
  stripe.createToken(card).then(setOutcome);
});

setOutcome在我调用时可以正常工作,但在更改时无法正确调用。

0 个答案:

没有答案