2012-09-01 23 views
5

È possibile includere i file "trascina e rilascia" in un invio di modulo? Ci sono molte opzioni per caricare in modo asincrono.html5 trascina e rilascia i file - carica quando viene inviato l'intero modulo

È possibile acquisire i dati del file e includerli in un campo modulo?

sto usando Rails come il mio server così idealmente i dati per l'immagine si adatterebbe a una forma come segue:

<form multipart='multipart' > 
    <select name='files[type_id]'> 
    ... 
    ... 
    </select> 
    <!-- FILE DATA ? --> 
    <div id="file_drop_spot"> 

    </div> 

</form> 

risposta

0

ho trovato questo problema su di esso: drag drop files into standard html file input

non lo faccio credi sia possibile, ma potresti ottenere l'effetto. Quando invii il modulo, prevedi il suo comportamento predefinito e inizia a caricare il file con ajax. Quando il caricamento del file è completo, si ricollega al modulo e lo si inoltra, senza prevenirne il comportamento predefinito.

Qualcosa di simile:

<form id="form"> 
    <input type="text" name="someText"></input> 
    <input id="submitButton" type="submit" onclick="uploadFile()"></input> 
</form> 

E poi il javascript:

function uploadFile() { 

    document.getElementById("submitButton").disabled = true; 
    // Some ajax code to upload the file and then on the success: 
    success: function() { 

     document.getElementById("form").submit(); 

    } 
    return false; // Prevent the form from submitting 

} 
+0

Sarebbe più di un lavoro in giro perché il record del file deve essere associato con la volontà non sono stati ancora creato –

+0

Hm, capisco ... Ma ajax è davvero solo un post, come se provenisse da una forma. Vorrei raccomandare di leggere su come un modulo invia effettivamente i dati dei file e quindi inviare il tutto con ajax. Il back-end non dovrebbe richiedere alcuna modifica basata su ajax o su un normale modulo di invio. Credo ;-) –

Problemi correlati