Files
2020-11-19 15:36:28 +01:00

68 lines
2.0 KiB
JavaScript

// Manage Countries and States form
(function($) {
$(document).ready(function(){
var addressState = (function () {
// A private function which logs any arguments
var initialize = function( element ) {
var elm = {};
elm.state = $(element);
elm.stateId = elm.state.val();
elm.country = $(elm.state.data('thelia-country'));
elm.countryId = elm.country.val();
elm.block = $(elm.state.data('thelia-toggle'));
elm.states = elm.state.children().clone();
elm.state.children().remove();
var updateState = function updateState() {
var countryId = elm.country.val(),
stateId = elm.state.val(),
hasStates = false;
if (stateId !== null && stateId !== '') {
elm.stateId = stateId;
}
elm.state.children().remove();
elm.states.each(function(){
var $state = $(this);
if ($state.data("country") == countryId) {
$state.appendTo(elm.state);
hasStates = true;
}
});
if (hasStates) {
// try to select the last state
elm.state.val(elm.stateId);
elm.block.removeClass("hidden");
} else {
elm.block.addClass("hidden");
}
};
elm.country.on('change', updateState);
updateState();
};
return {
init: function() {
$("[data-thelia-state]").each(function(){
initialize(this);
});
}
};
})();
addressState.init();
});
})(jQuery);