2

我有一个页面允许用户使用拖放上传他们的图像,我想限制他们只上传 jpg 文件。

我不得不承认,当谈到 jquery 时,我是一个完整的新手,所以我真的不知道如何完成这项工作。

到目前为止我有

var files = e.dataTransfer.files;
var ext = $('#drop-files').val().split('.').pop().toLowerCase();


// Show the upload holder
$('#uploaded-holder').show();

// For each file
$.each(files, function(index, file) {
    if($.inArray(ext, ['JPG','jpg','jpeg']) == -1) {
           alert('invalid extension!');
           return false;
       }

因为它什么都不做,如果我删除'return false',它会告诉我每个文件都是无效的并且无论如何都会上传它们。

谢谢

顺便说一句,我知道有未闭合的括号,我只是希望有人会看到我在我提供的代码部分中遗漏的明显内容

4

1 回答 1

2

问题是因为您falseeach循环中的函数返回,而不是提交处理函数。试试这个:

// For each file
var validExtension = false;
$.each(files, function(index, file) {
    if ($.inArray(ext, ['JPG','jpg','jpeg']) != -1 && !validExtension) {
        validExtension = true;
    }
}
return validExtension;
于 2013-03-05T10:54:13.523 回答