我有一个非常复杂的表单,有一个“文件”输入,例如:
<input type="file" />
是否可以使用JS触发某种“上传成功”,因此在用户上传文件后,整个表单会自行提交?
答案 0 :(得分:3)
您可以异步上传文件(如果您希望上传多个文件)。 例如:
<input type="file" class="js-file-upload" multiple>
创建输入标签后,您可以收听更改事件
$(".js-file-upload").on("change", function(e){
var files = e.target.files;
// your own logic to filter files etc.
// upload your file
});
毕竟这可以听取上传完成事件(例如在加载所有文件后提交)。 Javascript XMLHttpRequest对象提供两个事件: upload.progress 和加载。所以使用它))
我的项目中的伪代码:
file.on("upload.progress", function(e){
//value show progress
var value = Math.floor(e.loaded / e.total * 100);
});
file.on("load", function(response){ //logic });
答案 1 :(得分:-2)
为此,我建议jQuery File Upload。 done
回调通知客户端文件已成功上传。然后您就可以提交相应的表格。还有许多有用的回调(例如故障回调)。