对于广泛的标题感到抱歉,但我想我在这里有几个不同的问题,我希望有人可以帮我解决这个问题。
我正在使用malsup的表单插件来处理文件上传。我的主要问题是我需要处理一个JSON服务器响应,其中包含我上传脚本中已更改的文件名,然后$ .push将该值传递到另一个数组,并将其与其他数据一起保存。
Malsup的文档声明我可以使用json的dataType,但是当我使用它时,进度条停止工作。
$("#article-save").on('click', function(e){
e.preventDefault();
if( $('#article-upload-file').val().length > 0) {
var file = '';
$("#article-upload").ajaxSubmit({
target: '#article-output',
resetForm: true,
dataType: 'json', // This stops the progress bar from working
async:false, // This stops the progress bar from working
beforeSubmit: articleBeforeSubmit,
uploadProgress: articleOnProgress,
success: function(data){
if(data.success == 1){
file = data.file;
}
}
});
}
alert(file);
// Here is where I need 'file' so I can attach it to the array below.
// var vals = $("#article").find('input, select').serializeArray();
是否可以取回我的服务器响应并仍然有进度条?正如您所看到的,我使用async:false
这可能是罪魁祸首,因为进度是一个同步过程,但我不知道如何从成功函数中获取file
变量。