Quiero asignar el valor de input a una variable en Javascript, pero no estoy seguro de por qué el valor de input siempre está en blanco.
Aquí hay un ejemplo:
let input = document.getElementById('input').value let val = 'not' function check() { //console.log(document.getElementById('input').value) will work console.log(typeof input) console.log(input) } <input id='input' type='text'> <button onclick='check()'>Check</button> El valor input está en blanco (nada), pero el typeof input es una string .
Si uso document.getElementById('input').value , esto funcionará totalmente y mostrará el valor de la input correctamente.
¿Alguien podría explicarme un poco por qué asignarlo a una variable no funcionará?
¡Gracias por cualquier respuesta!
La asignación de variables val = 'not' tiene lugar la primera vez que se carga la página. Cuando necesita asignar un valor dinámico, como al hacer clic en un botón, necesita un mecanismo de manejo de eventos (en su caso, un evento de click ). Está llamando a una función al hacer clic, pero no asigna ningún valor a su variable allí. Hacer asignación dentro de la función como:
function check() { val = document.getElementById('input').value console.log(val) }