javascript for循环生成表单

时间:2018-03-29 20:40:42

标签: javascript

目前有工作代码需要以下内容,我们将数字2一直递增到250

const form2 = document.forms['submit-to-google-sheet2']  
   form2.addEventListener('submit', e => {  
    e.preventDefault()  
    fetch(scriptURL, { method: 'POST', body: new FormData(form2)})  
     .then(response => console.log('Success!', response), alert('Successfully Submitted!')) 
     .catch(error => console.error('Error!', error.message))  
   }) 

我想用for循环或其他非暴力技术来做到这一点,但到目前为止我的尝试都失败了

for (i = 0; i < 251; i++) { 
    const form[i] = document.forms['submit-to-google-sheet',[i],']
    form[i].addEventListener('submit', e => {  
    e.preventDefault()  
    fetch(scriptURL, { method: 'POST', body: new FormData(form[i])})  
    .then(response => console.log('Success!', response), alert('Successfully Submitted!')) 
    .catch(error => console.error('Error!', error.message))  
    })  
   }

1 个答案:

答案 0 :(得分:0)

在您的代码中,您尝试在form中设置列表的第n个成员,但您似乎不会将form初始化为空列表。解决此问题的一种方法是在遍历整数列表时重新定义表单(这样可以避免将整个表单列表存储在主内存中):

for (let i=2; i<251; i++) {
  let form = document.forms['submit-to-google-sheet' + i];
  form.addEventListener('submit', e => {
    e.preventDefault()
    fetch(scriptURL, {method: 'POST', body: new FormData(form)})
      .then(response => console.log('Success!', response))
      .catch(error => console.error('Error!', error.message))
  })
}

另请注意,如果要从2开始计数,并希望继续计数到251,则可以使用上面的循环来实现此效果。我希望有所帮助!