Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
optional_zip_countries.phtml
Go to the documentation of this file.
1 <?php
7 // @codingStandardsIgnoreFile
14 ?>
15 <script>
16 require([
17  "prototype",
18  "mage/adminhtml/events"
19 ], function(){
20 
21 //<![CDATA[
22 optionalZipCountries = <?= /* @noEscape */ $this->helper('Magento\Directory\Helper\Data')->getCountriesWithOptionalZip(true) ?>;
23 
24 function onAddressCountryChanged (countryElement) {
25  var zipElementId = countryElement.id.replace(/country_id/, 'postcode');
26 
27  // Ajax-request and normal content load compatibility
28  if ($(zipElementId) != undefined) {
29  setPostcodeOptional($(zipElementId), countryElement.value);
30  } else {
31  Event.observe(window, "load", function () {
32  setPostcodeOptional($(zipElementId), countryElement.value);
33  });
34  }
35 }
36 
37 function setPostcodeOptional(zipElement, country) {
38  if (optionalZipCountries.indexOf(country) != -1) {
39  while (zipElement.hasClassName('required-entry')) {
40  zipElement.removeClassName('required-entry');
41  }
42  zipElement.up('div.field').removeClassName('required');
43  zipElement.up('div.field').removeClassName('_required');
44  } else {
45  zipElement.addClassName('required-entry');
46  zipElement.up('div.field').addClassName('required');
47  zipElement.up('div.field').addClassName('_required');
48  }
49 }
50 
51 varienGlobalEvents.attachEventHandler("address_country_changed", onAddressCountryChanged);
52 
53 window.setPostcodeOptional = setPostcodeOptional;
54 window.onAddressCountryChanged = onAddressCountryChanged;
55 window.optionalZipCountries = optionalZipCountries;
56 //]]>
57 
58 });
59 </script>