Nie podałeś kodu formularza, więc dla przykładu użyłem takiego
<form>
<input type="text" name="color1" value="red">
<input type="text" name="color2" value="green">
<input type="text" name="color3" value="blue">
<input type="submit" name="submit">
</form>
zapisując w ten sposób
const values = [...e.target]
values.forEach(item => {
for(let key in obj){
obj[key] = item.value
}
}
w ostatecznym wyniku nadpisujesz wartości w obj, wartością z elementu submit (value w tym przypadku wtedy jest puste domyślnie)
const colors = { color1:'', color2:'', color3:'' };
const f = document.querySelector('form');
f.addEventListener('submit', submit);
function submit(e) {
e.preventDefault();
const values = [...e.target];
console.info(values);
values.forEach((item) => {
for (const key in colors) {
console.log(key, item.value);
colors[key] = item.value;
}
})
console.info(colors);
}
po usunięciu submit-a
const colors = { color1:'', color2:'', color3:'' };
const f = document.querySelector('form');
f.addEventListener('submit', submit);
function submit(e) {
e.preventDefault();
const values = [...e.target];
values.pop();
console.info(values);
values.forEach((item) => {
for (const key in colors) {
console.log(key, item.value);
colors[key] = item.value;
}
})
console.info(colors);
}
nie chodzi Tobie czasem o ...?
const colors = {};
const f = document.querySelector('form');
f.addEventListener('submit', submit);
function submit(e) {
e.preventDefault();
const values = [...e.target];
values.pop();
console.info(values);
for (const item of values) {
console.log(item.name, item.value);
colors[item.name] = item.value;
}
console.info(colors);
}
można też
const values = ([...e.target]).slice(0,-1);
//values.pop();