Плагин jQuery Form не обновляет индикатор выполнения, показывая состояние [jquery.form] = не инициализирован - PullRequest
1 голос
/ 10 марта 2012

Я пытаюсь показать ход загрузки, обработанный плагином jQuery Form, который они демонстрируют на своем сайте. Независимо от того, что я пытаюсь сделать, я не могу отобразить процент выполнения загрузки, и Firebug показывает [jquery.form] state = uninitialized в консоли при загрузке файла. Как только загрузка закончится, Firebug покажет [jquery.form] state = loading jquery.form.js (line 904) [jquery.form] isXml=false

Вот мой Javascript. Серверная часть использует class.upload.php, www.verot.net/php_class_upload.htm и возвращает JSON по завершении.

$("#apparatusPhotoUpload").ajaxForm({
    beforeSend: function() {
        //Do things such as disable upload button, switch to default preview image
    },
    uploadProgress: function(event, position, total, percentComplete) {
        var progress = percentComplete;
        $("#uploadProgress").html(progress);
    },
    dataType: 'json',
    success: function(data) {
        //Fire a couple of functions that alter data in the DOM
    }

Любая помощь будет оценена!

Ответы [ 2 ]

1 голос
/ 08 мая 2014

Решение GitHub: бесконечный цикл с пустым вводом файла (включая патч)

Согласно malsup комментарий

Added proposed fix to v2.91.

Скачать jQuery.form.js версия 3.50

Проблема решена для меня.

0 голосов
/ 05 февраля 2013

Я думаю, что новый плагин исправил некоторые связанные ошибки. У меня была похожая проблема, но я смог заставить ее работать, установив последнюю версию jQuery Form Plugin (версия: 3.26.0-2013.01.28) и используя что-то вроде этого (адаптировано к вашему пример) в моем javascript:

$("#apparatusPhotoUpload").ajaxForm({
    beforeSubmit: function() {
        //Do things such as disable upload button
        var progress_bar = $('<div class="progress"><div class="bar" style="width:0;"></div></div>');
        progress_bar.appendTo("#apparatusPhotoUpload");
    },
    uploadProgress: function(event, position, total, percentComplete) {
        var percentVal = percentComplete + '%';
        $('.bar').width(percentVal);
    },
    dataType: 'json',
    success: function(responseText, statusText, xhr, form) {
        //Fire a couple of functions that alter data in the DOM to show responseText
}
...