Duda formularios js

LR

Tengo un formulario que cargo con js tal que asi:

<form id="product-creation-form"  class="template-form">
    <fieldset>
        <input type="number" id="ean" placeholder="8480017159654">
        <input type="number" id="cod" placeholder="26995">
        <input type="text" id="product" placeholder="Product name">
        <input type="date" id="r_date">
        <button type="submit">Guardar cambios</button>
    </fieldset>
</form>

Y por otro lado tengo esto para usar esos datos:

const form = document.getElementById('product-creation-form')
form.onsubmit = (e) => {
    e.preventDefault();
    const formData = new FormData(form)
    const data = Object.fromEntries(formData.entries())
    console.log(data)
}

El problema viene en que solo me devuelve el ultimo campo. No se que coño falla, porque eso mismo tengo para un login y sin problemas para pasar user/pass

B

Nunca he usado el FormData pero parece ser que tienes que añadirle a los inputs el atributo name para que pueda crear el clave-valor.

3
Titafreda

Prueba añadiendo el atributo name a cada uno de los campos del formulario.

1
LR

Os como los huevos xD

Al no ver en mdn por ningun lado que lo necesitase (aunque en los ejemplos si que salen), no lo asocie a eso.

1
JuAn4k4

Ya que estás, ponle labels a los inputs, y déjate de tanto placeholder con números sin sentido que no pintan nada.

1 respuesta
LR

#5 Los labels estan puestos ya en la version "final". Los placeholders son eans / cods internos que usamos en tienda ya que de los que usaremos esto, quitandome a mi, el resto tienen que reiniciar la pass personal 2 o 3 veces al mes, asi que cuanto mas claro para ellos, mejor.

Usuarios habituales