Saltar al contenido

Reinicializar/Restablecer dropzone después de enviar el formulario

Esta es la solución más completa que encomtrarás brindar, pero obsérvala pausadamente y analiza si se adapta a tu proyecto.

Solución:

this.on("complete", function(file)  
   this.removeAllFiles(true); 
)

escribir el código anterior en INIT función.

esto elimina todos los archivos en la zona de entrega y RESTABLECE la zona de entrega al estado inicial.

http://www.dropzonejs.com/#event-reset

Finalmente, resolví el problema yo mismo. Al principio, elimino el formulario de su elemento principal. Eliminó la instancia de dropzone existente. Luego creo el formulario usando jQuery y reinicio la dropzone nuevamente. Aquí está mi código completo

 // To reset dropzone before popup load
    var resetDropzone = function () 

        $('#drop-zone-container').empty();

        var $form = makeElement('form', 
            action: window.pg.constants.url.SETTLEMENT_BASE_URL,
            method: 'post',
            id: 'settlement-proof-form',
            class: 'dropzone'
        );

        $('#drop-zone-container').append($form);

        var settlmentProofDropZone;
        $("#settlement-proof-form").dropzone(
            acceptedFiles: pg.constants.ACCEPTED_FORMAT,
            maxFilesize: pg.constants.ATTACHMENT_MAX_FILE_SIZE, //In MB
            maxFiles: pg.constants.ATTACHMENT_MAX_SIZE,
            addRemoveLinks: true,
            removedfile: function (file) 
                if (file.xhr.responseText.length > 0) 
                    var fileId = JSON.parse(file.xhr.responseText).id;
                    $.ajax(
                        url: pg.constants.url.SETTLEMENT_BASE_URL + fileId,
                        method: 'DELETE',
                        dataType: "json",
                        success: function (result) 
                            $('#uploaded_attachment').val($("#uploaded_attachment").val().replace(result.id + ',', ""));
                            $('#settlement_proof_status span').fadeOut(0);
                            var _ref;
                            return (_ref = file.previewElement) != null ? _ref.parentNode.removeChild(file.previewElement) : void 0;

                        ,
                        error: function () 
                            $('#settlement_proof_status').text(I18n.t('attachment_deletion_error')).fadeIn();
                        

                    );
                

            ,
            init: function () 
                settlmentProofDropZone = this;

                this.on("success", function (file, message) 
                    appendContent(message.attachment.url, message.id);
                );
            
        );

    ;

    function makeElement(element, options) 
        var $formField = document.createElement(element);
        $.each(options, function (key, value) 
            if (key === 'innerHTML') 
                $formField.innerHTML = value;
            
            else 
                $formField.setAttribute(key, value);
            
        );
        return $formField;
    
});

Prueba esto:

//DropZone Initiation Section
init: function() 
    this.on('success', function(file, json) 
    );

    this.on('addedfile', function(file) 
    );

    this.on('drop', function(file) 
    );

    this.on('removedfile', function(file) 
    );

    this.on('complete', function(file) 
    );

    this.on('error', function(file) 
    );

    this.on('resetFiles', function() 
        if(this.files.length != 0)
            for(i=0; i

Te mostramos las reseñas y valoraciones de los usuarios

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *