Обратный вызов Jquery Blueimp File-Upload

У меня есть простая программа для загрузки изображений, в которую пользователям нужно загружать большие изображения. Я использую загрузчик файлов Blueimp для загрузки изображения. Я также предоставляю пользователю несколько полей ввода для заполнения метаданных изображения (а именно, название, автор и т. д.).

Идея состоит в том, что пользователь нажимает отдельную кнопку отправки после заполнения формы и загрузки изображения. Однако, если пользователь нажимает кнопку до загрузки изображения, это вызывает ошибки. Я хотел бы отключить кнопку отправки формы, пока изображение не будет загружено, а индикатор выполнения не будет завершен.

$('#submit_main').attr('disabled', 'disabled'); 

должен быть начальным этапом, а затем включить его чем-то вроде

$('#submit_main').removeAttr('disabled');

Как сделать обратный вызов после загрузки всех файлов.


person ramdaz    schedule 04.05.2013    source источник
comment
Проверьте выполненные и всегда обратные вызовы здесь github.com/blueimp/jQuery -Файл-Загрузить/вики/   -  person Luke Baughan    schedule 05.05.2013


Ответы (2)


$('#submit_main').attr('disabled', 'disabled'); 
$('#fileupload').bind('fileuploaddone', function (e, data) {
    $('#submit_main').removeAttr('disabled');
});

https://github.com/blueimp/jQuery-File-Upload/wiki/Options

person Mohammad Adil    schedule 04.05.2013

На самом деле событие fileuploaddone срабатывает при загрузке каждого файла. Таким образом, если вы выберете несколько файлов для загрузки, вы преждевременно включите отправку после завершения первого файла вместо последнего. Лучше всего это сделать с помощью события fileuploadprogressall.

$('#myform').fileupload()
.bind('fileuploadstart', function(){
    // disable submit
})
.bind('fileuploadprogressall', function (e, data) {
    if (data.loaded == data.total){
        // all files have finished uploading, re-enable submit
    }
})
person anagnostatos    schedule 07.05.2014