Diverse Tax Services

DTS BUSINESS RETURN Intake Form


jQuery(document).ready(function ($) { // Use event delegation to handle AJAX-loaded or dynamically rendered forms $(document).on('blur', '.zip-lookup input', function () { lookupZip($(this)); }); $(document).on('keydown', '.zip-lookup input', function (e) { if (e.key === 'Enter') { e.preventDefault(); lookupZip($(this)); } }); function lookupZip($zipInput) { var zip = $.trim($zipInput.val()); // Only lookup valid 5-digit US ZIP codes if (!/^\d{5}$/.test(zip)) { return; } // Find the matching City and State fields relative to the form container var $form = $zipInput.closest('form'); var cityField = $form.find('.zip-city input'); var stateField = $form.find('.zip-state select'); // Fallback to global search if elements aren't found within a form wrapper if (cityField.length === 0) cityField = $('.zip-city input'); if (stateField.length === 0) stateField = $('.zip-state select'); $.getJSON('https://api.zippopotam.us/us/' + zip) .done(function (data) { if (data.places && data.places.length > 0) { var place = data.places[0]; var city = place['place name']; var state = place['state abbreviation']; // e.g., "CA" // Populate City cityField.val(city).trigger('input').trigger('change'); // Populate State and trigger change for both standard and Select2 dropdowns stateField.val(state).trigger('change'); if (stateField.hasClass('select2-hidden-accessible')) { stateField.trigger('change.select2'); } } else { clearFields(cityField, stateField); } }) .fail(function () { console.log('ZIP code lookup failed.'); clearFields(cityField, stateField); }); } function clearFields(cityField, stateField) { cityField.val('').trigger('input').trigger('change'); stateField.val('').trigger('change'); if (stateField.hasClass('select2-hidden-accessible')) { stateField.trigger('change.select2'); } } });