¿Puedes decirme cuándo se asigna el argumento del método (función en una función)? si los argumentos en el método (en una función) se asignan cuando se declaran, no hay valor de USERNAME.value cuando se declara.
pero si coloco el nombre almacenado como un argumento de saludo en la función de almacenamiento (que es la función de devolución de llamada utilizada para el evento), aparece nulo incluso si pongo mi nombre de usuario en el cuadro de entrada. Sin embargo, si pongo USERNAME.value , funciona correctamente.
Este es mi código js,
const USERNAME = document.getElementById("username"); const Form = document.querySelector("form"); const HIDDEN = "hidden"; const h2 = document.querySelector("h2"); const KEY = "username"; function greeting(who) { h2.innerText = `Hello, ${who}`; h2.classList.remove(HIDDEN); } function store(event) { event.preventDefault(); localStorage.setItem(KEY, USERNAME.value); Form.classList.add(HIDDEN); greeting(StoredName); } const StoredName = localStorage.getItem(KEY); if (StoredName == null) { Form.classList.remove(HIDDEN); Form.addEventListener("submit", store); } else { greeting(StoredName); }y este es mi código html.
<!DOCTYPE html> <html lang="en"> <head> <link rel="stylesheet" href="practice.css"> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <h2 class="hidden"></h2> <form action="" class="hidden"> <input type="text" name="" id="username"> <input type="submit" value=""> </form> <script src="practice.js"></script> </body> </html>