il mio file pdf non è selezionata in un primo momento, solo in Internet Explorer

voti
13

Ho un file di input per selezionare i file PDF. Dopo aver selezionato i file PDF, sono aperte le caselle di testo per dare un titolo ad ogni pdf.

Tutto funziona correttamente in Google Chrome.

In Internet Explorer Sto avendo un problema che io non sono in grado di capire perché e come risolvere.

Il mio problema:

In Internet Explorer quando si seleziona un file PDF per la prima volta, non succede nulla, il pdf non è selezionata.

Ho bisogno di selezionare altri pdf, ma posso essere il primo PDF selezionato, e quando seleziono altri pdf funziona.

E poi comincia a lavorare sempre bene, ma la prima volta seleziono un pdf ho sempre avere questo bug.

È possibile vedere il mio esempio completo con il mio problema qui : http://jsfiddle.net/j5yeq/3/ (ma per vedere il mio problema è necessario testare in Internet Explorer)

La mia Html:

<div class=galerry>               
    <div class=label style=margin:0;>
        <span class=field>PDFS:</span>
        <input type=file name=pdfs[] class=j_galleryp multiple=multiple accept=application/pdf  />
        <div class=j_gfalsep>Selecione quantos pdfs quiser</div>
        <img src=img/upload.png class=j_gsendp alt=Enviar Capa title=Enviar Capa style=margin:0 0 10px 10px; />   
        <div class=label id=teste></div> 
    </div>
</div>

La mia jQuery:

$('.j_gsendp').click(function(){
    $('.j_galleryp').click().change(function(){
         var allFiles = this.files;  
         var numFiles = this.files.length;

        $('.j_gfalsep').animate({width:'500'}, 500, function(){
            $(this).html('You selected<strong>'+ numFiles +'</strong> files.'); 

            for(var i = 0; i<numFiles; i++) {
                var file = allFiles[i],
                    name = file.name;
                $('#test').append('<div class=message>Give a title to pdf <strong>'+name+':</strong></div><span>Title for pdf '+name+':</span><input type=text name=title[] value=/><br><br>');
             } 
            });
              this.val('');
        });
    });
});
È pubblicato 09/08/2014 alle 21:28
dall'utente
In altre lingue...                            


1 risposte

voti
1

È codice jQuery ha degli errori. Non riesco a trovare la soluzione per IE al presente ma anche in Chrome e Firefox questa arrivi codice pdf due volte da seconda volta. Ho modificato il jquery per funzionare correttamente.

$('.j_gsendp').click(function(){
    $('.j_galleryp').trigger('click');
});

$('.j_galleryp').change(function () {
    update();    
});

function update(){
    var input = $('.j_galleryp')[0];
    var allFiles = input.files;
    var numFiles = input.files.length;
    alert(numFiles);
    $('.j_gfalsep').animate({
        width: '400'
    }, 500, function () {
        $(this).html('You select <strong>' + numFiles + '</strong>files.');
        for (var i = 0; i < numFiles; i++) {
            var file = allFiles[i],
                name = file.name;
            $('#test').append('<span class="field">Title of pdf ' + name + ':</span><input type="text" name="title[]" value="' + name + '"/><br><br>');
        }
    });
}

Utilizzare questo codice jQuery e non vincolano i gestori di eventi all'interno di altri gestori di eventi. Si può finire vincolanti stesso evento più volte.

NOTA: Non riesco a modificare la domanda così ho risposto a questa come una soluzione.

Risposto il 11/08/2014 a 11:35
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more