Я внедрил Stripe's Client-Only Dashboard Checkout (https://stripe.com/docs/payments/checkout/client) на странице html. Я изменил значение quantity
в коде Stripe JS с целого числа 1 на выбранную мной переменную под названием numb
. Я не вносил никаких других изменений в код Stripe JS.
Если я использую свой собственный код JS, чтобы изменить значение numb
на целое число по моему выбору, тогда, когда я нажимаю кнопку Checkout, Stripe Страница оформления заказа обновила количество и общую цену, чтобы отразить значение numb
. Это то, что я хочу.
Проблема возникает тогда, когда вместо numb = 2;
я использую оператор JS, который позволяет пользователю страницы html изменять значение numb
. Вот фрагмент кода:
<P>How many tickets do you want to buy?</p>
<input type="number" id="steve-number-tickets">
<button id="steve-testing">How many?</button>
<p id="test-for-numb"></p>
<script>
// ***MY CODE***
numb = 7;
// User Chooses
var howManyButton = document.getElementById('steve-testing');
howManyButton.addEventListener('click', function () {
numb = 2;
// numb = document.getElementById('steve-number-tickets').value;
// document.getElementById('test-for-numb').innerHTML = numb;
});
// ***END OF MY CODE***
</script>
С приведенным выше кодом я получаю следующее поведение. Если пользователь обновляет страницу и просто нажимает кнопку Checkout , Stripe checkout выставляет счет за 7 элементов. Если они обновят sh страницу и нажмут мою кнопку Сколько? , а затем кнопку Checkout , Stripe checkout выставит им счет за 2 элемента.
Если я изменю код, поэтому numb = 2
закомментирован, а комментарии удалены из numb = document.getElementById('steve-number-tickets').value;
, тогда, если пользователь обновляет страницу и нажимает кнопку Checkout , Stripe chekout выставляет счет за 7 элементов. Если они обновляют sh страницу и нажимают мою кнопку Сколько? (независимо от того, вводят ли они сначала целое число в элемент input ), а затем нажимают на полосу Кнопка «Оформить заказ» , «Оформление заказа с полосой» не загружается.
Я подумал, что это проблема с оператором: numb = document.getElementById('steve-number-tickets').value;
. Итак, я проверил это, раскомментировав оператор document.getElementById('test-for-numb').innerHTML = numb;
. Когда я это сделаю, значение, введенное пользователем в элемент input , отображается в элементе p с id = "test-for-numb" , когда они нажмите кнопку Сколько? . Итак, этот оператор работает так, как ожидалось.
Я не могу понять, почему проверка полосы пропускания не загружается, когда я использую оператор numb = document.getElementById('steve-number-tickets').value;
, но загружается, когда я использую numb = 2;
.
Я действительно хотел бы знать, что происходит.