1$(document).ready(function () { 2 let select = $('#useraddress-country_id'); 3 let selectOfSignUp = $('#signupform-country_id'); 4 let statesSelect = $('#useraddress-state'); 5 let statesSelectOfSignUp = $('#signupform-state'); 6 let stateField = $('.field-useraddress-state'); 7 let stateFieldOfSignUp = $('.field-signupform-state'); 8 if (selectOfSignUp[0]) { 9 select = selectOfSignUp; 10 statesSelect = statesSelectOfSignUp; 11 stateField = stateFieldOfSignUp; 12 } 13 if (select[0]) { 14 let selectedItem = select[0].options[select[0].selectedIndex].value; 15 if (selectedItem === '244') { 16 makeRequest(selectedItem); 17 } else if (selectedItem === '43') { 18 makeRequest(selectedItem); 19 } else if (selectedItem === '15') { 20 makeRequest(selectedItem); 21 } 22 23 $(select[0]).change(function () { 24 25 let selectedItem = select[0].options[select[0].selectedIndex].value; 26 if (selectedItem === '244') { 27 makeRequest(selectedItem); 28 } else if (selectedItem === '43') { 29 makeRequest(selectedItem); 30 } else if (selectedItem === '15') { 31 makeRequest(selectedItem); 32 } else { 33 statesSelect[0].innerHTML = ''; 34 let option = document.createElement('option'); 35 option.value = ''; 36 $(statesSelect[0]).append(option); 37 stateField[0].style.display = 'none'; 38 } 39 40 }); 41 42 function setOptions(data) { 43 statesSelect[0].innerHTML = ''; 44 stateField[0].style.display = 'block'; 45 //if returned data contain selected state.It will be true for 'change my details' page. 46 if (typeof data[0] === 'string') { 47 data[1].forEach(item => { 48 let option = document.createElement('option'); 49 option.value = item.state_code; 50 option.text = item.name; 51 if (item.state_code === data[0]) { 52 option.selected = true; 53 } 54 $(statesSelect[0]).append(option); 55 }) 56 } else { 57 data.forEach(item => { 58 let option = document.createElement('option'); 59 option.value = item.state_code; 60 option.text = item.name; 61 $(statesSelect[0]).append(option); 62 }) 63 } 64 } 65 66 function makeRequest(selectedItem) { 67 $.ajax({ 68 url: `/site/get-states-by-country?countryId=${selectedItem}`, 69 type: 'get', 70 async: false, 71 data: {_csrf: yii.getCsrfToken()}, 72 success: function (data) { 73 setOptions(data); 74 }, error: function (result) { 75 } 76 }); 77 } 78 79 80 } 81});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.