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

問題は、送信ハンドラー関数ではなく、ループfalse内の関数から戻っているためです。eachこれを試して:

// 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 に答える