Tengo una entrada HTML que solo acepta números y en mi archivo de script tengo una variable que obtiene el valor de la entrada. Lo que quiero hacer es crear otra variable que sea igual a la primera variable. Cuando pongo un número en el campo de entrada, el valor de la variable numInput cambia pero no en el
variable de value
EDITAR lo que estoy tratando de hacer es, quiero usar el valor de la variable de value en algunas funciones que haré.
const numInput = document.getElementById("input"); const value = numInput.value; <header> <input type="number" name="numInput" id="input" class="input" min="0" value="1" required> </header>La razón por la que el value no cambia es porque está guardando una copia del contenido de numInput.value durante la asignación, no un puntero o referencia (algo que no creo que puedas hacer en JS). Sugeriría usar solo .valueAsNumber como lo sugiere @Sebastian Simon.
Los objetos JS son las únicas cosas en JS que no se clonan en la asignación a una nueva variable. Esto incluye matrices.
Por lo tanto, para imitar el comportamiento, deberá actualizar su valor con cada cambio, generalmente agregando un detector de eventos. Elegí usar el evento de change que solo se activará al desenfoque si el valor ha cambiado de los campos que involucran el teclado y la selección/alteración del rango/fecha si el valor ha cambiado, aunque podría usar el evento de input si lo desea para cambiar en cada pulsación de tecla, también. Tener una lectura rápida:
Al hacer esto, el value tampoco puede ser una constante, ya que cambiará, por lo que debe ser una variable. Opté por una declaración let para un mejor aislamiento del código, pero por todos los medios use var si necesita más flexibilidad.
const numInput = document.getElementById("input"); let value = numInput.value; numInput.addEventListener('change', () => { value = numInput.value; });Para lograr esto, JavaScript necesita activar una función cuando se cambia el valor de entrada del elemento HTML. Para hacerlo, se necesita un detector de eventos.
Intente cambiar el valor de entrada para que pueda ver el código en acción:
document.getElementById("input").addEventListener('input', function(){ let inputNumber = this.value console.log('your variable value is: ' + inputNumber) }) <header> <input type="number" name="numInput" id="input" class="input" min="0" value="1" required> </header>