目前有工作代码需要以下内容,我们将数字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))
})
}
答案 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,则可以使用上面的循环来实现此效果。我希望有所帮助!