$(function () { "use strict"; $("select[data-country-information-url]").each(function () { let xhr; const dependency = $(this), loader = $("").hide().prependTo(dependency.closest(".form-group").find("label")), url = this.getAttribute('data-country-information-url'), form = dependency.closest(".panel-body, form, .profile-scope"), isRequired = dependency.closest(".form-group").is(".required"), dependents = { 'city': form.find("input[name$=city]"), 'zipcode': form.find("input[name$=zipcode]"), 'street': form.find("textarea[name$=street]"), 'state': form.find("select[name$=state]"), 'vat_id': form.find("input[name$=vat_id]"), }, update = function (ev) { if (xhr) { xhr.abort(); } for (var k in dependents) dependents[k].prop("disabled", true); loader.show(); xhr = $.getJSON(url + '?country=' + dependency.val(), function (data) { var selected_value = dependents.state.prop("data-selected-value"); if (selected_value) dependents.state.prop("data-selected-value", ""); dependents.state.find("option:not([value=''])").remove(); if (data.data.length > 0) { $.each(data.data, function (k, s) { var o = $("