Javascript 从窗体创建对象数组

Javascript 从窗体创建对象数组,javascript,html,Javascript,Html,我正在制作一个表单,用户(家长)可以添加多个孩子的信息。 我当前的代码如下所示: (()=>{ 让currentCount=0 const submitButton=document.querySelector(“#submitForm”) document.querySelector(“#addMoreFields”).addEventListener('单击',(事件)=>{ event.preventDefault() //查找并克隆模板内容 const theForm=document

我正在制作一个表单,用户(家长)可以添加多个孩子的信息。
我当前的代码如下所示:

(()=>{
让currentCount=0
const submitButton=document.querySelector(“#submitForm”)
document.querySelector(“#addMoreFields”).addEventListener('单击',(事件)=>{
event.preventDefault()
//查找并克隆模板内容
const theForm=document.querySelector(“#theForm”)
const template=form.getElementsByTagName('template')[0]
const clone=template.content.cloneNode(true)
//如果submitButton是隐藏的,则显示它
if(submitButton.offsetParent==null){
submitButton.removeAttribute('样式')
}
//在输入字段中添加要设置的类和名称
clone.querySelector('.set').classList.add(`set-${currentCount}`)
clone.querySelector('.first_name').setAttribute('name',`firstName[${currentCount}]`)
clone.querySelector('.middle_name').setAttribute('name',`middleName[${currentCount}]`)
clone.querySelector('.last_name').setAttribute('name','lastName[${currentCount}]`)
form.append(克隆)
电流计数++
})
submitButton.addEventListener('单击',(事件)=>{
event.preventDefault()
常数阵列=[]
//创建一个对象并推送到数组
})
})()
.set{
保证金:5px;
填充物:5px;
外形:1px实心#ccc;
}

添加
提交
您也可以对每个
div.set
中的
输入
-字段使用减速机来实现所有
div.set
。比如:

(()=>{
让currentCount=0
const submitButton=document.querySelector(“#submitForm”)
//div.set内输入的减速机
constInputs2ObjectReducer=(acc,inp)=>({…acc,[inp.className]:inp.value});
document.querySelector(“#addMoreFields”).addEventListener('单击',(事件)=>{
event.preventDefault();
//查找并克隆模板内容
const theForm=document.querySelector(“#theForm”);
const template=form.getElementsByTagName('template')[0];
const clone=template.content.cloneNode(true);
//如果submitButton是隐藏的,则显示它
if(submitButton.offsetParent==null){
submitButton.removeAttribute(“样式”);
}
//在输入字段中添加要设置的类和名称
clone.querySelector('.set').classList.add(`set-${currentCount}`);
clone.querySelector('.first_name').setAttribute('name','firstName[${currentCount}]`);
clone.querySelector('.middle_name').setAttribute('name','middleName[${currentCount}]`);
clone.querySelector('.last_name').setAttribute('name','lastName[${currentCount}]`);
追加(克隆)形式;
currentCount++;
})
submitButton.addEventListener('单击',(事件)=>{
event.preventDefault();
//将所有div.set减少为对象数组
常量数组=[…document.queryselectoral(“.set”)]
.减少((acc,val)=>
[…行政协调会,
[…val.querySelectorAll(“输入”)]
.reduce(inputs2ObjectReducer,{})],[]);
控制台日志(数组);
})
})()
.set{
保证金:5px;
填充物:5px;
外形:1px实心#ccc;
}

添加
提交