Error executing template "Designs/Swift/UserManagement/CreateProfile/CreateAccount.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
   at CompiledRazorTemplates.Dynamic.RazorEngine_b0145597231743ada935d180e5181821.Execute() in D:\dynamicweb.net\Solutions\Novicell\klinger.cloud.dynamicweb-cms.com\Files\Templates\Designs\Swift\UserManagement\CreateProfile\CreateAccount.cshtml:line 116
   at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader)
   at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.<RunCompile>b__0(TextWriter writer)
   at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
   at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template)
   at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template)
   at Dynamicweb.Rendering.Template.RenderRazorTemplate()

1 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 2 3 @{ 4 string pageTitle = Pageview.Page.GetDisplayName(); 5 string pageId = GetGlobalValue("Global:Page.ID"); 6 int signInPageId = Dynamicweb.Services.Pages.GetPageByNavigationTag(Pageview.Area.ID, "SignInPage").ID; 7 string singInPageUrl = Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl(signInPageId); 8 string invalidName = !string.IsNullOrEmpty(GetString("UserManagement:User.Name.Input.Error")) ? "is-invalid" : ""; 9 string invalidEmail = !string.IsNullOrEmpty(GetString("UserManagement:User.Email.Input.Error")) ? "is-invalid" : ""; 10 string invalidCompanyName = !string.IsNullOrEmpty(GetString("UserManagement:User.Company.Input.Error")) ? "is-invalid" : ""; 11 string invalidVat = !string.IsNullOrEmpty(GetString("UserManagement:User.VatRegNumber.Input.Error")) ? "is-invalid" : ""; 12 string invalidPassword = !string.IsNullOrEmpty(GetString("UserManagement:User.NewPassword.Input.Error")) ? "is-invalid" : ""; 13 string invalidConfirmPassword = !string.IsNullOrEmpty(GetString("UserManagement:User.NewPasswordConfirm.Input.Error")) ? "is-invalid" : ""; 14 string invalidIndustrialSector = !string.IsNullOrEmpty(GetString("UserManagement:User.IndustrialSector.Input.Error")) ? "is-invalid" : ""; 15 string invalidJobTitle = !string.IsNullOrEmpty(GetString("UserManagement:User.JobTitle.Input.Error")) ? "is-invalid" : ""; 16 string invalidPhone = !string.IsNullOrEmpty(GetString("UserManagement:User.Phone.Input.Error")) ? "is-invalid" : ""; 17 string invalidConsent = !string.IsNullOrEmpty(GetString("UserManagement:User.Consent.Input.Error")) ? "is-invalid" : ""; 18 string invalidEmailAllowed = !string.IsNullOrEmpty(GetString("UserManagement:User.EmailAllowed.Input.Error")) ? "is-invalid" : ""; 19 20 string contentPadding = Pageview.CurrentParagraph.Item["ContentPadding"] != null ? Pageview.CurrentParagraph.Item["ContentPadding"].ToString() : ""; 21 contentPadding = contentPadding == "none" ? "px-0" : contentPadding; 22 contentPadding = contentPadding == "small" ? "p-2 p-md-3" : contentPadding; 23 contentPadding = contentPadding == "large" ? "p-4 p-md-5" : contentPadding; 24 var themeRaw = Pageview.CurrentParagraph.Item["Theme"]?.ToString(); 25 string theme = !string.IsNullOrEmpty(themeRaw) ? " theme " + themeRaw.Replace(" ", "").Trim().ToLower() : " theme light"; 26 } 27 28 <div class="@(contentPadding)"> 29 30 @foreach (var error in GetLoop("FormValidationErrors")) 31 { 32 <div class="alert alert-danger mb-3" role="alert"> 33 @error.GetString("UserManagement:User.FormValidationError.Message") 34 </div> 35 } 36 37 @if (!String.IsNullOrEmpty(GetString("error"))) 38 { 39 <div class="alert alert-danger mb-5" role="alert"> 40 @GetString("error") 41 </div> 42 } 43 44 <div class="card border-0@(theme) mx-auto" style="max-width: 30rem;"> 45 46 <div class="card-header text-center p-4 border-bottom"> 47 <h4 class="display-6 m-0">@pageTitle</h4> 48 @if (!string.IsNullOrEmpty(singInPageUrl)) 49 { 50 <p class="card-text mt-2"> 51 @Translate("Already have an account?") <a href="@singInPageUrl">@Translate("Sign in here")</a> 52 </p> 53 } 54 </div> 55 56 <div class="card-body p-4"> 57 58 @GetString("UserManagement:User.FormStart") 59 <input type="hidden" name="UserManagementForm" value="1"> 60 <div class="grid grid-1 gap-4"> 61 62 <div> 63 <label class="form-label fs-7 mb-0 opacity-75" for="UserManagement_Form_Company">@Translate("Your Company")</label> 64 <div class="form-floating"> 65 <input type="text" class="form-control @invalidCompanyName" placeholder="@Translate("Company")" name="UserManagement_Form_Company" id="UserManagement_Form_Company" value="@GetString("UserManagement:User.Company")" required /> 66 <div class="invalid-feedback">@GetString("UserManagement:User.Company.Input.Error")</div> 67 <label for="UserManagement_Form_Company" class="form-label">@Translate("Company")</label> 68 </div> 69 </div> 70 <div> 71 <label class="form-label fs-7 mb-0 opacity-75" for="UserManagement_Form_IndustrialSector">@Translate("Your Industrial Sector")</label> 72 73 <div class="form-floating"> 74 @GetString("UserManagement:User.CustomField.AccessUser_IndustrialSector.Input").Replace("select", "select class=\"form-control\" placeholder=\"IndustrialSector\"") 75 <input type="hidden" class="form-control @invalidIndustrialSector" name="UserManagement_Form_IndustrialSector" id="UserManagement_Form_IndustrialSector" value="@GetString("UserManagement:User.CustomField.AccessUser_IndustrialSector")" /> 76 <div class="invalid-feedback">@GetString("UserManagement:User.CustomField.AccessUser_IndustrialSector.Input.Error")</div> 77 <label for="UserManagement_Form_IndustrialSector" class="form-label">@Translate("Industrial Sector")</label> 78 </div> 79 </div> 80 81 <div> 82 <label class="form-label fs-7 mb-0 opacity-75" for="UserManagement_Form_VatRegNumber">@Translate("Your Vat Number")</label> 83 <div class="form-floating"> 84 <input type="text" class="form-control @invalidVat" placeholder="@Translate("VatNumber")" name="UserManagement_Form_VatRegNumber" id="UserManagement_Form_VatRegNumber" value="@GetString("UserManagement:User.VatRegNumber")" required /> 85 <div class="invalid-feedback">@GetString("UserManagement:User.VatRegNumber.Input.Error")</div> 86 <label for="UserManagement_Form_VatRegNumber" class="form-label">@Translate("VatNumber")</label> 87 </div> 88 </div> 89 <div> 90 <label class="form-label fs-7 mb-0 opacity-75" for="UserManagement_Form_Name">@Translate("Your name")</label> 91 <div class="form-floating"> 92 <input type="text" class="form-control @invalidName" placeholder="@Translate("Name")" name="UserManagement_Form_Name" id="UserManagement_Form_Name" value="@GetString("UserManagement:User.Name")" required /> 93 <div class="invalid-feedback">@GetString("UserManagement:User.Name.Input.Error")</div> 94 <label for="UserManagement_Form_Name" class="form-label">@Translate("Name")</label> 95 </div> 96 </div> 97 <div> 98 <label class="form-label fs-7 mb-0 opacity-75" for="UserManagement_Form_JobTitle">@Translate("Your Job Title")</label> 99 <div class="form-floating"> 100 <input type="text" class="form-control @invalidJobTitle" placeholder="@Translate("Job Title")" name="UserManagement_Form_JobTitle" id="UserManagement_Form_JobTitle" value="@GetString("UserManagement:User.JobTitle")" required /> 101 <div class="invalid-feedback">@GetString("UserManagement:User.JobTitle.Input.Error")</div> 102 <label for="UserManagement_Form_JobTitle" class="form-label">@Translate("JobTitle")</label> 103 </div> 104 </div> 105 <div> 106 <label class="form-label fs-7 mb-0 opacity-75" for="UserManagement_Form_Phone">@Translate("Your Phone")</label> 107 <div class="form-floating"> 108 <input type="text" class="form-control @invalidPhone" placeholder="@Translate("Phone")" name="UserManagement_Form_Phone" id="UserManagement_Form_Phone" value="@GetString("UserManagement:User.Phone")" /> 109 <div class="invalid-feedback">@GetString("UserManagement:User.Phone.Input.Error")</div> 110 <label for="UserManagement_Form_Phone" class="form-label">@Translate("Phone")</label> 111 </div> 112 </div> 113 114 <!-- ADDRESS --> 115 @{ 116 var languageId = Pageview.Area.Languages.FirstOrDefault(i => i.Active).EcomLanguageId; 117 var currentCountry = !string.IsNullOrEmpty(GetString("UserManagement:User.UserAddress.CountryCode.Value")) ? GetString("UserManagement:User.UserAddress.CountryCode.Value") : Pageview.Area.EcomCountryCode; 118 119 var communityCode = GetString("UserManagement:User.UserAddress.AccessUserAddress_Autonomous_Community"); 120 121 var regions = Klinger.Website.Infrastructure.Services.CountryService.Instance.GetStates(currentCountry, communityCode, languageId); 122 123 var regionLabel = "State"; 124 125 var userId = 0; 126 } 127 128 <div> 129 <label class="form-label fs-7 mb-0 opacity-75" for="UserManagement_Form_Address">@Translate("Street & number")</label> 130 <div class="form-floating"> 131 <input type="text" class="form-control" placeholder="@Translate("Street & number")" id="UserManagement_Form_Address" name="UserManagement_Form_Address" value="@GetString("UserManagement:User.UserAddress.Address.Value")" required /> 132 <div class="invalid-feedback">@GetString("UserManagement:User.UserAddress.Address.Input.Error")</div> 133 <label for="UserManagement_Form_Address" class="form-label">@Translate("Street & number")</label> 134 </div> 135 </div> 136 137 <div> 138 <label class="form-label fs-7 mb-0 opacity-75" for="UserManagement_Form_CountryCode">@Translate("Country")</label> 139 <div class="form-floating"> 140 <select class="form-select" id="UserManagement_Form_CountryCode" name="UserManagement_Form_CountryCode"> 141 <option selected>@Translate("Select country")</option> 142 @foreach (var country in GetLoop("UserManagement.CountryList")) 143 { 144 var selected = country.GetString("Country.Code2") == currentCountry ? "selected" : ""; 145 <option value="@country.GetString("Country.Code2")" @selected>@country.GetString("Country.Name")</option> 146 } 147 </select> 148 <label for="UserManagement_Form_CountryCode" class="form-label">@Translate("Country")</label> 149 </div> 150 </div> 151 152 <div> 153 <label class="form-label fs-7 mb-0 opacity-75" for="UserManagement_Form_Zip">@Translate("Zip")</label> 154 <div class="form-floating"> 155 <input type="text" class="form-control" placeholder="@Translate("Zip")" id="UserManagement_Form_Zip" name="UserManagement_Form_Zip" value="@GetString("UserManagement:User.UserAddress.Zip.Value")" required /> 156 <div class="invalid-feedback">@GetString("UserManagement:User.UserAddress.Zip.Input.Error")</div> 157 <label for="UserManagement_Form_Zip" class="form-label">@Translate("Zip code")</label> 158 </div> 159 </div> 160 161 <div> 162 <label class="form-label fs-7 mb-0 opacity-75" for="UserManagement_Form_City">@Translate("Town / City")</label> 163 <div class="form-floating"> 164 <input type="text" class="form-control" placeholder="@Translate("Town / City")" id="UserManagement_Form_City" name="UserManagement_Form_City" value="@GetString("UserManagement:User.UserAddress.City.Value")" required /> 165 <div class="invalid-feedback">@GetString("UserManagement:User.UserAddress.City.Input.Error")</div> 166 <label for="UserManagement_Form_City" class="form-label">@Translate("Town / City")</label> 167 </div> 168 </div> 169 170 @switch (currentCountry) 171 { 172 case "CA": 173 regionLabel = Translate("Province"); 174 break; 175 case "GB": 176 case "ES": 177 regionLabel = Translate("Region"); 178 break; 179 case "US": 180 regionLabel = Translate("State"); 181 break; 182 default: 183 regionLabel = Translate("State"); 184 break; 185 } 186 187 @{ 188 var hasCommunities = Klinger.Website.Infrastructure.Services.CountryService.Instance.HasRegions(currentCountry); 189 } 190 <div id="CommunityContainer" style="display: @(hasCommunities?"block":"none")"> 191 <label class="form-label fs-7 mb-0 opacity-75" for="CustomField.AccessUser_AccessUser_Autonomous_Community">@Translate("Autonomous Community")</label> 192 <div class="form-floating"> 193 194 <select class="form-select" id="SpanishRegionSelect" onchange="handleRegionChange()"> 195 <option value="">@Translate("Select autonomous community")</option> 196 @if (hasCommunities) 197 { 198 var communities = Klinger.Website.Infrastructure.Services.CountryService.Instance.GetRegions(0, languageId); 199 foreach (var community in communities) 200 { 201 var selected = community.Key.Equals(communityCode) ? "selected=\"selected\"" : ""; 202 <option value="@community.Key" @selected>@community.Value</option> 203 } 204 } 205 </select> 206 <label for="CustomField.AccessUser_AccessUser_Autonomous_Community">@Translate("Autonomous Community")</label> 207 <input type="hidden" name="CustomField.AccessUser_AccessUser_Autonomous_Community" id="CustomField.AccessUser_AccessUser_Autonomous_Community" value="@communityCode" /> 208 </div> 209 </div> 210 211 @{ 212 var hasStates = regions != null && regions.Any(); 213 } 214 <div id="StateContainer" style="display: @(hasStates?"block":"none")"> 215 <label class="form-label fs-7 mb-0 opacity-75" for="UserManagement_Form_State">@Translate("Region")</label> 216 <div class="form-floating"> 217 @{ 218 var regionCode = GetString("UserManagement:User.UserAddress.State.Value"); 219 220 <select class="form-select" id="SpanishStateSelect" onchange="handleStateChange()"> 221 <option value="">@Translate("Select region")</option> 222 @foreach (var region in regions) 223 { 224 var selected = region.Key == regionCode ? "selected" : ""; 225 <option value="@region.Key" @selected>@region.Value</option> 226 } 227 </select> 228 } 229 <label for="UserManagement_Form_State">@regionLabel</label> 230 @if (regions.ContainsKey(regionCode)) 231 { 232 <input type="hidden" name="UserManagement_Form_State" id="UserManagement_Form_State" value="@regionCode" /> 233 234 } 235 else 236 { 237 <input type="hidden" name="UserManagement_Form_State" id="UserManagement_Form_State" /> 238 } 239 240 <input type="hidden" name="CustomField.AccessUser_AccessUser_State_Code" id="CustomField.AccessUser_AccessUser_State_Code" value="" /> 241 </div> 242 </div> 243 244 <div> 245 <label class="form-label fs-7 mb-0 opacity-75" for="UserManagement_Form_Email">@Translate("Your email")</label> 246 <div class="form-floating"> 247 <input type="email" class="form-control @invalidEmail" placeholder="@Translate("Email")" name="UserManagement_Form_Email" id="UserManagement_Form_Email" value="@GetString("UserManagement:User.Email")" required /> 248 <div class="invalid-feedback">@GetString("UserManagement:User.Email.Input.Error")</div> 249 <label for="UserManagement_Form_Email" class="form-label">@Translate("Email")</label> 250 </div> 251 </div> 252 <div> 253 <label class="form-label fs-7 mb-0 opacity-75" for="UserManagement_Form_NewPassword">@Translate("Password")</label> 254 <div class="form-floating"> 255 <input class="form-control @invalidPassword" placeholder="@Translate("Password")" type="password" id="UserManagement_Form_NewPassword" name="UserManagement_Form_NewPassword" value="" autocomplete="off" required> 256 <div class="invalid-feedback">@GetString("UserManagement:User.NewPassword.Input.Error")</div> 257 <label for="UserManagement_Form_NewPassword" class="form-label">@Translate("Password")</label> 258 </div> 259 </div> 260 <div> 261 <label class="form-label fs-7 mb-0 opacity-75" for="UserManagement_Form_NewPasswordConfirm">@Translate("Confirm password")</label> 262 <div class="form-floating"> 263 <input class="form-control @invalidConfirmPassword" placeholder="@Translate("Confirm password")" type="password" id="UserManagement_Form_NewPasswordConfirm" name="UserManagement_Form_NewPasswordConfirm" value="" autocomplete="off" required> 264 <div class="invalid-feedback">@GetString("UserManagement:User.NewPasswordConfirm.Input.Error")</div> 265 <label for="UserManagement_Form_NewPasswordConfirm" class="form-label">@Translate("Confirm password")</label> 266 </div> 267 </div> 268 <div> 269 <div class="form-check"> 270 <input type="checkbox" class="form-check-input @invalidConsent" name="UserManagement_Form_Consent" id="UserManagement_Form_Consent" value="@GetString("UserManagement:User.Consent")" required /> 271 <input type="hidden" class="form-control" name="UserManagement_Form_Consent" id="UserManagement_Form_Consent" value="@GetString("UserManagement:User.Consent")" /> 272 <div class="invalid-feedback">@GetString("UserManagement:User.Consent.Input.Error")</div> 273 <label for="UserManagement_Form_Consent" class="form-check-label">@Translate("GDPR Consent")</label> 274 </div> 275 </div> 276 <div> 277 <div class="form-check"> 278 <input type="checkbox" class="form-check-input @invalidEmailAllowed" name="UserManagement_Form_EmailAllowed" id="UserManagement_Form_EmailAllowed" value="@GetString("UserManagement:User.EmailAllowed")" /> 279 <input type="hidden" class="form-control" name="UserManagement_Form_EmailAllowed" id="UserManagement_Form_EmailAllowed" value="@GetString("UserManagement:User.EmailAllowed")" /> 280 <label for="UserManagement_Form_EmailAllowed" class="form-check-label">@Translate("Email Allowed")</label> 281 </div> 282 </div> 283 284 <button type="submit" class="btn btn-primary btn-lg" id="CreateNewAccountButton">@Translate("Create your new account")</button> 285 </div> 286 @GetString("UserManagement:User.FormEnd") 287 288 </div> 289 </div> 290 </div> 291 292 <script> 293 // declarations 294 var dwCountryCode = "@currentCountry"; 295 var dwUserId = "@userId"; 296 var dwLanguageId = "@languageId"; 297 var stateElement = document.getElementById("SpanishStateSelect"); 298 var regionElement = document.getElementById("SpanishRegionSelect"); 299 var stateHiddenElement = document.getElementById("UserManagement_Form_State"); 300 var regionHiddenElement = document.getElementById("CustomField.AccessUser_AccessUser_Autonomous_Community"); 301 var communityContainer = document.getElementById("CommunityContainer"); 302 var stateContainer = document.getElementById("StateContainer"); 303 var dwStateLabel = "@Translate("Select region")"; 304 var dwRegionLabel = "@Translate("Select autonomous community")"; 305 var selectedZip = document.getElementById("UserManagement_Form_Zip"); 306 307 if (!dwCountryCode || dwCountryCode.length == 0) { 308 dwCountryCode = document.getElementById("UserManagement_Form_CountryCode"); 309 } 310 311 function handleStateChange() { 312 let labelText = ''; 313 for (let i = 0; i < stateElement.options.length; i++) { 314 if (stateElement.options[i].value === stateElement.value) { 315 labelText = stateElement.options[i].text; 316 break; 317 } 318 } 319 320 stateHiddenElement.value = stateElement.value;//labelText; 321 322 } 323 324 function handleRegionChange() { 325 let labelText = ''; 326 for (let i = 0; i < regionElement.options.length; i++) { 327 if (regionElement.options[i].value === regionElement.value) { 328 labelText = regionElement.options[i].text; 329 break; 330 } 331 } 332 regionHiddenElement.text = regionElement.value; 333 regionHiddenElement.value = regionElement.value;// Replaced labelText with regionElement.value to make values consistent between user and Address 334 335 stateHiddenElement.value = ""; 336 var selectedCountry = document.getElementById("UserManagement_Form_CountryCode").value; 337 updateStatesSelect(selectedCountry); 338 } 339 340 async function handleRegionChangeWithState(code) { 341 let labelRegionText = ''; 342 for (let i = 0; i < regionElement.options.length; i++) { 343 if (regionElement.options[i].value === regionElement.value) { 344 labelRegionText = regionElement.options[i].text; 345 break; 346 } 347 } 348 regionHiddenElement.text = regionElement.value; 349 regionHiddenElement.value = regionElement.value;// Replaced labelRegionText with regionElement.value to make values consistent between user and Address 350 351 var selectedCountry = document.getElementById("UserManagement_Form_CountryCode").value; 352 await updateStatesSelect(selectedCountry, code); 353 354 let labelText = ''; 355 for (let i = 0; i < stateElement.options.length; i++) { 356 if (stateElement.options[i].value === code) { 357 labelText = stateElement.options[i].text; 358 break; 359 } 360 } 361 stateHiddenElement.value = labelText; 362 } 363 364 function handleCountryChange() { 365 var selectedCountry = document.getElementById("UserManagement_Form_CountryCode").value; 366 367 toggleCountry(selectedCountry); 368 } 369 370 function handleZip() { 371 var selectedCountry = document.getElementById("UserManagement_Form_CountryCode").value; 372 var formZip = document.getElementById("UserManagement_Form_Zip").value; 373 374 if (formZip && formZip.length == 5) { 375 updateCitySelect(selectedCountry, formZip); 376 } 377 } 378 379 function toggleCountry(country) { 380 stateHiddenElement.value = ""; 381 regionHiddenElement.value = ""; 382 383 updateStatesSelect(country); 384 updateRegionSelect(country); 385 } 386 387 async function updateStatesSelect(country, selected) { 388 try { 389 const response = await fetch(`/api/country/states?country=${country}&region=${regionHiddenElement.text}&language=${dwLanguageId}`); 390 391 if (!response.ok) { 392 throw new Error(`Request failed. Returned status of ${response.status}`); 393 } 394 395 const data = await response.json(); 396 const select = document.getElementById('SpanishStateSelect'); 397 398 if (data && Object.keys(data).length > 0) { 399 // Clear existing options 400 select.innerHTML = ''; 401 402 // Add an empty option as the default 403 const defaultOption = document.createElement('option'); 404 defaultOption.value = ''; 405 defaultOption.textContent = dwStateLabel; // Or any placeholder text you prefer 406 select.appendChild(defaultOption); 407 408 // Add new options from the response 409 for (const key in data) { 410 const option = document.createElement('option'); 411 option.value = key; 412 option.textContent = data[key]; 413 if (selected && selected.length && selected == key) { 414 option.selected = true; 415 } 416 417 select.appendChild(option); 418 } 419 420 // Display the select element 421 stateContainer.style.display = 'block'; 422 } else { 423 // Hide the select element if response is null or empty 424 stateContainer.style.display = 'none'; 425 } 426 } catch (error) { 427 console.error('Request error:', error); 428 stateContainer.style.display = 'none'; 429 } 430 } 431 432 function updateRegionSelect(country) { 433 var xhr = new XMLHttpRequest(); 434 xhr.open('GET', '/api/country/regions?user=' + dwUserId +'&country=' + country + '&language=' + dwLanguageId, true); 435 436 xhr.onload = function () { 437 var select = document.getElementById('SpanishRegionSelect'); 438 439 if (xhr.status === 200) { 440 var response = JSON.parse(xhr.responseText); 441 442 if (response && Object.keys(response).length > 0) { 443 // Clear existing options 444 select.innerHTML = ''; 445 446 // Add an empty option as the default 447 var defaultOption = document.createElement('option'); 448 defaultOption.value = ''; 449 defaultOption.textContent = dwRegionLabel; // Or any placeholder text you prefer 450 select.appendChild(defaultOption); 451 452 // Add new options from the response 453 for (var key in response) { 454 var option = document.createElement('option'); 455 option.value = key; 456 option.textContent = response[key]; 457 select.appendChild(option); 458 } 459 460 // Display the select element 461 communityContainer.style.display = 'block'; 462 } else { 463 // Hide the select element if response is null or empty 464 communityContainer.style.display = 'none'; 465 } 466 } else { 467 console.error('Request failed. Returned status of ' + xhr.status); 468 communityContainer.style.display = 'none'; 469 } 470 }; 471 472 xhr.onerror = function () { 473 console.error('Request error.'); 474 stateContainer.style.display = 'none'; 475 }; 476 477 xhr.send(); 478 } 479 480 function updateCitySelect(country, code) { 481 var xhr = new XMLHttpRequest(); 482 xhr.open('GET', '/api/country/location?country=' + country + '&code=' + code, true); 483 484 xhr.onload = function () { 485 if (xhr.status === 200) { 486 var response = JSON.parse(xhr.responseText); 487 488 if (response && Object.keys(response).length > 0) { 489 490 if (response.Success) { 491 selectedZip.value = code; 492 regionElement.value = response.RegionCode; 493 handleRegionChangeWithState(response.StateCode); 494 495 if (response.PostalCodeName.length && response.PostalCodeName.length > 0) { 496 document.getElementById("UserManagement_Form_City").value = response.PostalCodeName; 497 } 498 } 499 } 500 else { 501 502 } 503 } 504 else { 505 console.error('Request failed. Returned status of ' + xhr.status); 506 } 507 }; 508 509 xhr.onerror = function () { 510 console.error('Request error.'); 511 stateContainer.style.display = 'none'; 512 }; 513 514 xhr.send(); 515 } 516 517 function submitForm() { 518 document.querySelector("#UserManagement_Form_State").value = ""; 519 var form = document.querySelector("#AddressForm"); 520 UserManagement_Form_State 521 form.requestSubmit(); 522 } 523 524 // event handlers 525 document.getElementById("UserManagement_Form_CountryCode").onchange = handleCountryChange; 526 document.addEventListener("DOMContentLoaded", function () { 527 var zipInput = document.getElementById("UserManagement_Form_Zip"); 528 529 zipInput.addEventListener("input", handleZip); 530 }); 531 </script>
By clicking 'Accept All' you consent that we may collect information about you for various purposes, including: Functionality, Statistics and Marketing