Элементы полосы не заданы в форме - PullRequest
0 голосов
/ 30 апреля 2019

Я должен реализовать форму Stripe в проекте ASP.NET и готов сделать что-то вроде следующего:

Форма оплаты в полоску

Это прекрасно работает и смог создать форму в проекте ASP.NET с необходимыми файлами для интеграции. Но я не могу написать в текстовые поля, когда импортируются все необходимые файлы из JsFiddle. Хотя у меня есть следующий код со всеми ссылками:

<input type="hidden" name="token" />
<div class="group">
  <label>
    <span>Card number</span>
    <div id="card-number-element" class="field"></div>
    <span class="brand"><i class="pf pf-credit-card" id="brand-icon"></i></span>
  </label>
  <label>
    <span>Expiry date</span>
    <div id="card-expiry-element" class="field"></div>
  </label>
  <label>
    <span>CVC</span>
    <div id="card-cvc-element" class="field"></div>
  </label>
  <label>
    <span>Postal code</span>
    <input id="postal-code" name="postal_code" class="field" placeholder="90210" />
  </label>
</div>
<button type="submit">Pay $25</button>
<div class="outcome">
  <div class="error"></div>
  <div class="success">
    Success! Your Stripe token is <span class="token"></span>
  </div>
</div>

Я получаю исключение в консоли с помощью функции проверки браузера - Uncaught IntegrationError: Указанный селектор (# card-number-element) применяется к элементам DOM, которые в данный момент отсутствуют на странице. Убедитесь, что элемент существует на странице, прежде чем вызывать mount (). Что-нибудь, что я здесь пропустил? Еще одна вещь, я хочу получить значения от элемента, скажем, номер карты. Возможно ли это получить? Хотя я пытался раньше, но не смог получить значения с атрибутом name типа ввода, сгенерированного элементами следующим образом:

var cardNo = $('select[name=cardnumber]').val();

1 Ответ

2 голосов
/ 30 апреля 2019

Ошибка, скорее всего, означает, что ваш код работает до полной загрузки DOM (в JSFiddle весь код выполняется после события load).Возможно, вы захотите переместить код, который монтирует элемент Stripe, в обработчик для события загрузки.

window.onload = function(){
  ...
  var cardNumberElement = elements.create('cardNumber', {
    style: style
  });
  cardNumberElement.mount('#card-number-element');
  ...
}

Я готов получить значения из элемента, скажем, номер карты.Реально ли это получить?

Нет, по соображениям соответствия PCI , Elements не разрешает доступ к необработанным данным карты.

...