Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

147
Vistas
Agregue un cuadro de entrada para cada archivo soltado en dropzone

Tengo un cuadro de arrastrar y soltar con dropzone.js. Permito la carga de múltiples archivos (máximo 5 archivos en la actualidad). Solicité agregar una capacidad para que el usuario agregue una descripción para cada archivo cargado. Los retos que tengo:

  1. No se puede determinar cuántos archivos arrastró el usuario en la zona
  2. si creo cuadros de texto fuera de la zona, ¿cómo los vinculo a cada archivo correctamente? Configuré uploadMultiple en falso y procesé un archivo a la vez. Por ejemplo, el usuario subió 3 imágenes de casa, tienda y almacén y 1 pdf y agregó una descripción de las facturas. ¿Cómo me aseguro de que las facturas no terminen en casa o tienda al procesar ese archivo?
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Logré algo como esto usando una plantilla personalizada de cómo Dropzone muestra el archivo en la cola. Comencé con este ejemplo del autor de Dropzone que explica cómo usar una plantilla personalizada al mostrar archivos en la cola. Amplié el ejemplo agregando una entrada de formulario adicional a la plantilla.

 <div class="table table-striped" class="files" id="previews"> <div id="template" class="file-row"> <!-- This is used as the file preview template --> <div> <span class="preview"><img data-dz-thumbnail /></span> </div> <div> <p class="name" data-dz-name></p> <strong class="error text-danger" data-dz-errormessage></strong> </div> <!-- include a form field to collect the description --> <div> <label for="description">Description</label> <textarea id="description" data-name="description" rows="3"></textarea> </div> <!-- remainder of template removed for brevity --> </div> </div>

Número 1

Cuando agrega el elemento de formulario, si especifica un atributo de name , solo se enviará el valor del elemento de formulario asociado con el último archivo cuando se cargue el archivo porque tiene varios elementos de formulario, todos con el mismo atributo de name .

Para evitar esto, no incluí un atributo de name , sino que usé un atributo data-name . Luego agregué el valor del elemento del formulario a los datos del formulario cuando se envió el archivo usando este código:

 myDropzone = new Dropzone('form#myuploadform') myDropzone.on( 'sending', function (file, xhr, formData) { let description = file.previewElement.querySelector('textarea') formData.append(description.getAttribute('data-name'), description.value) } )

Número 2

Debido a que los valores de id se especifican en la plantilla, tendrán el mismo valor para cada archivo agregado a la cola que infrinja la especificación HTML, ya que los valores de id deben ser únicos. Además, dado que el atributo for del elemento LABEL hace referencia al id de TEXTAREA, esto también interrumpe la accesibilidad porque la segunda y subsiguientes ETIQUETAS harán referencia a la primera TEXTAREA.

Solucioné esto agregando el valor UUID que Dropzone asigna a cada objeto de file para la id y for atributos a medida que el archivo se agrega a la cola, que se explica en esta respuesta .

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda