javascript - 如何将不同类型的表单输入附加到 formData()?
问题描述
我的表单包含多种输入类型(file
、number
、text
等),而有些文件输入有multiple
attribute
,有些没有。所以问题是如何在formData()
不需要逐个附加每个输入的情况下附加所有这些不同的类型?实际上,我正在考虑将它与我的所有表单一起使用的功能。
解决方案
这是一个适用于所有类型输入类型(文件[单个和多个]、文本、数字等)的解决方案:
formData
是包含我们表单数据的对象。例如,稍后将填充数据的空对象:
formData : {
first_name: null,
last_name: null,
image: null,
thumbnails: [],
}
let formData = new FormData()
for(let key in this.formData) {
if(typeof(this.formData[key]) === 'object') {
if(this.formData[key].length) {
for (let subKey in this.formData[key]) {
formData.append(`${key}[]`, this.formData[key][subKey]);
}
} else {
formData.append(key, this.formData[key]);
}
}
else {
formData.append(key, this.formData[key]);
}
}
this.$axios.$post(url, formData, {
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
}).then((response) => {
// ...
}).catch((error) => {
// ...
})
推荐阅读
- ruby-on-rails - 如何进行批量 SFTP 传输?
- node.js - 在 Express 中完成作业处理后发送响应
- r - 如何根据最后两行的值对 data.frame 进行子集化?
- http - What's a HTTP private proxy?
- android - 如何在 Android Studio 上将我的手机用作“模拟器”?
- botframework - Bot Framework Composer:迭代对象数组(在 json 中)产生无效输出
- angular - 如何使用 Cypress 测试 AWS Amplify Angular Authenticator 组件?
- javascript - 如何使用 reactjs 从对象中删除数组
- plotly - 当间隔比完成回调所需的时间更频繁时,dcc.Interval 调用的 Plotly/Dash 回调得到备份
- python - 更新到 v.85 后,Python 无法在 webdriver chrome 中全屏显示