From 4db7fe03e38ab6eb87d2ce2bed995ca85ba7e941 Mon Sep 17 00:00:00 2001 From: David Kennedy Date: Wed, 26 Feb 2025 07:24:58 -0500 Subject: [PATCH] nameserver forms are smart --- .../assets/src/js/getgov/form-nameservers.js | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/registrar/assets/src/js/getgov/form-nameservers.js b/src/registrar/assets/src/js/getgov/form-nameservers.js index 57a24a30d..e128b768a 100644 --- a/src/registrar/assets/src/js/getgov/form-nameservers.js +++ b/src/registrar/assets/src/js/getgov/form-nameservers.js @@ -114,6 +114,29 @@ export class NameserverForm { }); }); + // Add a specific listener for 'id_form-{number}-server' inputs to make + // nameserver forms 'smart' + let formIndex = 0; + while (document.getElementById(`id_form-${formIndex}-server`)) { + let serverInput = document.getElementById(`id_form-${formIndex}-server`); + let ipInput = document.getElementById(`id_form-${formIndex}-ip`); + if (serverInput && ipInput) { + let ipParent = ipInput.parentElement; // Get the parent element of ipInput + serverInput.addEventListener("input", () => { + let serverValue = serverInput.value.trim(); + if (ipParent) { + if (serverValue.endsWith('.' + this.domain)) { + showElement(ipParent); // Show IP field if the condition matches + } else { + hideElement(ipParent); // Hide IP field otherwise + ipInput.value = ""; // Set the IP value to blank + } + } + }); + } + formIndex++; // Move to the next index + } + const unsaved_changes_modal = document.getElementById('unsaved-changes-modal'); if (unsaved_changes_modal) { const submitButton = document.getElementById('unsaved-changes-click-button');