Sha256: 7836f221a69e1747ea88bae4e959c1c10de90f8f1f3b779c3e688fe5e9fd5561
Contents?: true
Size: 1.75 KB
Versions: 1
Compression:
Stored size: 1.75 KB
Contents
window.addEventListener('DOMContentLoaded', () => { const form = document.querySelector('#checkout_form_payment'); const existingCards = document.querySelector('#existing_cards'); if (form) { if (existingCards) { const paymentMethodControls = document.querySelector('.payment-method-controls'); const useExistingCardYes = document.querySelector('#use_existing_card_yes'); const useExistingCardNo = document.querySelector('#use_existing_card_no'); const existingCcRadios = document.querySelectorAll('.existing-cc-radio'); paymentMethodControls.style.display = 'none'; useExistingCardYes.addEventListener('click', () => { paymentMethodControls.style.display = 'none'; existingCcRadios.forEach(radio => radio.removeAttribute('disabled')); }); useExistingCardNo.addEventListener('click', () => { paymentMethodControls.style.display = 'block'; existingCcRadios.forEach(radio => radio.setAttribute('disabled', true)); }); } const selectors = document .querySelectorAll('input[type="radio"][name="order[payments_attributes][][payment_method_id]"]'); selectors.forEach(selector => { selector.addEventListener('click', () => { const controls = document.querySelectorAll('.payment-method-controls li'); controls.forEach(control => control.style.display = 'none'); if (selector.checked) { const selectedControl = document.querySelector(`#payment_method_${selector.value}`); selectedControl.style.display = 'block'; } }); }); // Activate already checked payment method if form is re-rendered // i.e. if user enters invalid data document.querySelector('input[type="radio"]:checked').click(); } });
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
solidus_starter_frontend-0.1.0 | app/assets/javascripts/spree/frontend/checkout/payment.js |