Al hacer clic en el botón, me gustaría tomar los valores enviados e indexarlos en la matriz vacía. Como puede ver en la línea inferior, he usado el método de reinicio en el formulario, pero al registrar la matriz, todos los índices tienen un valor vacío.
También he usado preventDefault() para detener el envío del formulario, ¿podrían las etiquetas del formulario estar causando el problema?
const enteredNumbers = []; console.log(enteredNumbers); const form1 = document.getElementById("form1"); form1.addEventListener("submit", e => { e.preventDefault(); const values = document.getElementsByName("number")[0]; enteredNumbers.push(values); form1.reset(); }, true); <form id="form1"> <div class="row w-100 d-flex justify-content-between div1"> <div class="col-12 d-flex justify-content-center"> <input type="number" name="number" id="number" min="1" max="100"> </div> <div class="col-12 d-flex justify-content-center"> <button type="submit" form="form1" id="submit">Submit</button> </div> </div> </form>La etiqueta del formulario no causa este problema, pero sí lo hacen otras 2 cosas:
values son un elemento html , no el valor. El valor es elem.value , eso es lo que presioné allí.Buena suerte
const enteredNumbers = []; const form1 = document.getElementById("form1"); form1.addEventListener("submit", e => { e.preventDefault(); const values = document.getElementsByName("number")[0]; enteredNumbers.push(values.value); form1.reset(); console.log(enteredNumbers); }, true); <form id="form1"> <div class="row w-100 d-flex justify-content-between div1"> <div class="col-12 d-flex justify-content-center"> <input type="number" name="number" id="number" min="1" max="100"> </div> <div class="col-12 d-flex justify-content-center"> <button type="submit" form="form1" id="submit">Submit</button> </div> </div> </form>Acabo de darme cuenta de que olvidé agregar la propiedad de valor a esto:
document.getElementsByName("number").valueLo siento, esto se puede cerrar.