$(document).ready(function(){ function handleCheckoutDetailsLoading(isLoading, form) { const wrapper = form.find('#checkout-shoppingcart-wrapper'); const loading = form.find('#checkout-shoppingcart-loading'); wrapper.prop('disabled', isLoading); wrapper.css('opacity', isLoading ? '0.4' : '1'); isLoading ? loading.removeClass('d-none') : loading.addClass('d-none'); } $(document).on('submit', '.form-calculate-shipping', function(e) { e.preventDefault(); const buttonToCalculateShipping = $(this).find('.btn-calculate'); buttonToCalculateShipping.click(); }); $(document).on('click', '.btn-calculate', function() { $('form.form-calculate-shipping .alert').remove(); addMaskInFields(); const form = $(this).closest('form.form-calculate-shipping'); const zipCode = form.find('#zip_code').unmask().val(); var validateZipCode = /^[0-9]{8}$/; if (zipCode != "" && zipCode.length == 8 && validateZipCode.test(zipCode)) { let form = $(this).closest('form.form-calculate-shipping'); const wrapper = form.find('#checkout-shoppingcart-wrappe'); const URL = form.data('calculate-shipping'); const METHOD = 'GET'; let data = form.serializeArray(); data.push({ "name": "quantity", "value": $(".input-quantity").val() }); $.ajax({ url: URL, type: METHOD, data: data, beforeSend: function () { addMaskInFields(); wrapper.html(''); handleCheckoutDetailsLoading(true, form); }, success: function (response) { addMaskInFields(); handleCheckoutDetailsLoading(false, form); $('.calculate-shipping').removeClass('d-none'); wrapper.removeClass('d-none'); wrapper.html(response); } }).fail(function(response) { addMaskInFields(); handleCheckoutDetailsLoading(false, form); const alertSuccess = ` `; form.append(alertSuccess); }); } else{ const alertSuccess = ``; const form = $(this).closest('form.form-calculate-shipping'); form.append(alertSuccess); } }); });