我使用ajax上传多个文件。用户可以在同一时间上传多个文件。如果我只能为一个上传文件中止ajax? 这是ajax:
areq=$.ajax({
url: $(this).attr('action'),
xhr: function() { // custom xhr (is the best)
var xhr = new XMLHttpRequest();
//load
xhr.upload.addEventListener("load", function(evt) {
$("#msg").text('success !' );
}, false);
//error
xhr.upload.addEventListener("error", function(evt) {
// show progress like example
$("#msg").text('error !' );
}, false);
//abort
xhr.upload.addEventListener("abort", function(evt) {
$("#msg").text('abort !' );
}, false);
return xhr;
},
type: 'post',
processData: false,
contentType: false,
data: fd,
success: function(data) {
// do something...
}
});
答案 0 :(得分:-1)
上传文件的最大数量是10.所以我在js文件的第一个定义了这个变量: var sssss,formaa,formab,formac,formad,formae,formaf,formag,formah,formai,formaj; 并将$ .ajax保存到sssss。后$ .ajax放置此开关:
stra=$(this).parent().index();
switch (stra) {
case 10:
formaa = sssss;
break;
case 9:
formab = sssss;
break;
case 8:
formac = sssss;
break;
case 7:
formad = sssss;
break;
case 6:
formae = sssss;
break;
case 5:
formaf = sssss;
break;
case 4:
formag = sssss;
break;
case 3:
formah = sssss ;
break;
case 2:
formai = sssss;
break;
case 1:
formaj = sssss;
break;
}
stra是上传文件的数量。当用户点击取消按钮时,此功能名为:
$("form span#stop").click(function(){
stra=$(this).parent().parent().index();
switch (stra) {
case 10:
formaa.abort() ;
break;
case 9:
formab.abort();
break;
case 8:
formac.abort();
break;
case 7:
formad.abort();
break;
case 6:
formae.abort();
break;
case 5:
formaf.abort();
break;
case 4:
formag.abort();
break;
case 3:
formah.abort();
break;
case 2:
formai.abort();
break;
case 1:
formaj.abort();
break;
}
});
stra也是上传文件的数量。所以我将$ .ajax复制到另一个变量,并考虑每个文件的变量。