主要作用:
- 将form表单元素的name与value进行组合,实现表单数据的序列化,从而减少表单元素的拼接,提升工作效率
- 异步文件上传
常用操作
- 新建空的FormData对象
let formData = new FormData();
- 使用FormDate.append添加键值对
formData.append('id', id); formData.append('image_title', image_title); formData.append('image_url', image_url); formData.append('image_link', image_link); formData.append('s_time', s_time); formData.append('e_time', e_time);
- 使用FormDate.get()对值进行读取
formData.get('e_time');
- 使用FormDate.set()对值进行设置
formData.set('e_time', e_time);
- 在form表单中,提交数据的时候,格式化form表单数据
在数据的位置,直接通过$('form').on('submit', function () { $.ajax({ url: $(this).attr('action'), type:$(this).attr('method'), data: new FormData($(this)[0]), processData: false, contentType: false, success: function (data) { console.log(data); if(data.status === 200){ // 添加成功 alert('轮播图添加成功!'); window.location.href = '/back/s_list' }else { alert('轮播图添加失败!'); } } }); // 阻止默认提交的事件 return false; });
new FormData(Form表单)
构造数据
主要作用
异步读取存储在计算机上的文件
案例:当file类型的input文件变动时,动态改变图片路径
$('#upfile').on('change', function () {
// 2.2.1 获取用户上传的图片文件
// console.log($(this).get(0).files[0]);
let file = $(this).get(0).files[0];
// 2.2.2 读取这个文件
let reader = new FileReader();
if (file) {
reader.readAsDataURL(file);
}
// 2.2.3 监听文件是否读取完毕
reader.onloadend = () => {
$('#image_url').attr('src', reader.result);
}
});