Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <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>
- <style>
- html {
- font-size: 20px;
- font-family: "Courier New", Courier, monospace;
- }
- body {
- display: flex;
- align-items: center;
- justify-content: space-evenly;
- min-height: 100vh;
- margin: 0;
- padding: 0;
- background-color: lightslategray;
- }
- form {
- display: flex;
- flex-direction: column;
- }
- label {
- margin-block: 0.25rem;
- }
- input {
- display: block;
- padding-block: 0.5rem;
- font-size: 1rem;
- border-radius: 3px;
- border: none;
- outline: none;
- }
- button,
- .button {
- cursor: pointer;
- padding-block: 0.5rem;
- font-size: 1rem;
- border-radius: 3px;
- border: 1px solid rgba(255, 255, 255, 0.331);
- background-color: rgb(206 255 255);
- }
- button:active,
- .button:active {
- background-color: rgb(143, 179, 179);
- }
- </style>
- <body>
- <form>
- <label for="nombre">
- Nombre
- <input type="text" name="nombre" />
- </label>
- <label for="apellido">
- Apellido
- <input type="text" name="apellido" />
- </label>
- <label for="submit">
- <input class="button" type="submit" value="Enviar" />
- </label>
- </form>
- <div class="container">
- <button id="verGuardados">Ver guardados</button>
- <ul id="lista"></ul>
- </div>
- </body>
- <script defer>
- // creo las variables, accediendo a los elementos HTML
- const form = document.querySelector("form");
- const botonLista = document.querySelector("#verGuardados");
- const listaHTML = document.querySelector("#lista");
- // creo un array vacio para guardar los objetos usuario
- const listaUsuarios = [];
- // agrego un escuchador de eventos para el evento
- // SUBMIT (enviar) del formulario
- form.addEventListener("submit", (e) => {
- // prevengo el comportamiento por defecto (recarga la página)
- e.preventDefault();
- // accedo a los valores de los input al momento de hacer submit
- const nombre = e.target[0].value;
- const apellido = e.target[1].value;
- if (!nombre || !apellido) return alert("Datos no válidos");
- // ejecuto la funcion que guarda los usuarios
- guardarUsuario({ nombreUsuario: nombre, apellidoUsuario: apellido });
- // reinicio el formulario
- form.reset();
- });
- // agrego un escuchador de eventos para el evento
- // CLICK del boton. Le paso la funcion que quiero que ejecute (sin parentesis)
- botonLista.addEventListener("click", recuperarUsuarios);
- // se prepara para recibir "algo" a traves de su parámetro
- function guardarUsuario(usuario) {
- // guardamos en array lo que la funcion reciba por parámetro
- listaUsuarios.push(usuario);
- // guardamos en localStorage el array luego de actualizarlo (agregar el nuevo usuario)
- // con JSON.stringify estamos convirtiendo el array a formato JSON
- localStorage.setItem("usuarios", JSON.stringify(listaUsuarios));
- }
- function recuperarUsuarios() {
- // recupera de localStorage el elemento "usuarios"
- // parseando el JSON y convirtiendo de nuevo array
- const listaRecuperada = JSON.parse(localStorage.getItem("usuarios"));
- // para evitar items repetidos, primero vaciamos la lista
- listaHTML.innerHTML = "";
- // aplicamos metodo forEach (para cada uno de los elementos de un array)
- listaRecuperada.forEach((user) => {
- // creamos nodo HTML LI
- const li = document.createElement("li");
- // le ponemos como contenido los datos del usuario
- li.textContent = `${user.nombreUsuario} ${user.apellidoUsuario}`;
- // agregamos el LI creado a la lista UL del HTML
- listaHTML.appendChild(li);
- });
- }
- </script>
- </html>
Add Comment
Please, Sign In to add comment