1
respuesta

Duda Challenge Encriptador

Estoy empezando por crear una funcion que obtenga el texto introducido en una tag y lo guarde en una variable al hacer click en el boton Encriptar.</p> <p>Para probar la funcion estoy después haciendo un console.log para imprimir en consola el contenido del <textarea> pero me esta pasando algo raro...</p> <p>Cuando ingreso un texto y después hago click en el botón encriptar la consola flashea muy rapido el contenido de la variable (por ejemplo un simple Hola), y de inmediato lo borra tanto de la consola como del <textarea> y vuelve a hacer un console.log pero en esta ocasión solo imprime una línea vacía..</p> <p>No logro entender por qué hace esto, el código del html y app.js son los siguientes:</p> <pre class="prettyprint"><code><section id="text-input"> <h1>Ingrese el texto aquí</h1> <textarea id="texto-a-encriptar"></textarea> </section> </code></pre> <pre class="prettyprint"><code>let button = document.getElementById("encriptar"); let textoInicial; button.addEventListener("click", function() { textoInicial = document.getElementById("texto-a-encriptar").value; console.log(textoInicial); return textoInicial; }); console.log(textoInicial); </code></pre> <p>Pareciera como si el script completo corriera sin parar en ciclo...</p> <p>Gracias por su ayuda de antemano!</p> <p>P.S. Me equivoqué de curso porque en la UI no se ve completo el nombre al momento de seleccionarlo para crear el post y ya no me deja cambiarlo...</p>

1 respuesta

¡Hola Estudiante!

Gracias por compartir tu duda con nosotros. Parece que estás teniendo un problema interesante con tu función de encriptación. Después de revisar tu código, parece que el problema está en cómo estás manejando el evento click del botón.

Cuando haces click en el botón de encriptar, estás guardando el valor del textarea en la variable textoInicial y luego imprimiéndolo en la consola. Sin embargo, también estás intentando imprimir el valor de textoInicial fuera del evento click, lo cual no funcionará como esperas.

El motivo por el que ves una línea vacía en la consola es porque cuando intentas imprimir textoInicial fuera del evento click, la variable aún no ha sido asignada, por lo que su valor es undefined. Esto es porque el evento click aún no ha ocurrido.

Para solucionar este problema, puedes mover la línea console.log(textoInicial); dentro del evento click, justo después de asignar el valor de textoInicial. De esta manera, se imprimirá el valor correcto en la consola.

Aquí tienes el código corregido:

let button = document.getElementById("encriptar");
let textoInicial;

button.addEventListener("click", function() {
    textoInicial = document.getElementById("texto-a-encriptar").value;
    console.log(textoInicial);
    return textoInicial;
});

Espero que esto resuelva tu problema. Si tienes alguna otra pregunta, ¡no dudes en preguntar! ¡Buena suerte con tu función de encriptación!

¡Saludos!

Si este post te ayudó, por favor marca como solucionado ✓. ¡Continúa con tus estudios!