mon fichier pdf n'est pas sélectionné dans un premier temps, que dans Internet Explorer

voix
13

J'ai un fichier d'entrée pour sélectionner pdfs. Après que je sélectionne les pdfs, sont des zones de texte ouvertes pour donner un titre à chaque pdf.

Tout fonctionne correctement dans Google Chrome.

Dans Internet Explorer, je vais avoir un problème que je ne suis pas en mesure de comprendre pourquoi et comment résoudre.

Mon problème:

Dans Internet Explorer lorsque je sélectionne un fichier PDF pour la première fois, rien ne se passe, le pdf est pas sélectionné.

Je dois choisir d'autres pdf, mais ne peux pas être le premier pdf sélectionné, et lorsque je sélectionne d'autres pdf il fonctionne.

Et commence alors à travailler toujours bien, mais première fois que je sélectionne un pdf j'ai toujours ce bug.

Vous pouvez voir mon exemple complet avec ma question ici : http://jsfiddle.net/j5yeq/3/ (mais voir mon problème , vous devez tester dans Internet Explorer)

Mon 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>

Mon 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('');
        });
    });
});
Créé 09/08/2014 à 21:28
utilisateur
Dans d'autres langues...                            


1 réponses

voix
1

Vous le code jquery a quelques erreurs. Je ne peux pas trouver la solution pour IE à l'heure actuelle, mais même dans le chrome et le téléchargement de Firefox, le code pdf deux fois de la deuxième fois. J'ai modifié le jquery fonctionne correctement.

$('.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>');
        }
    });
}

Utilisez ce code jquery et ne lient pas les gestionnaires d'événements à l'intérieur d'autres gestionnaires d'événements. Vous pouvez finir par un même événement à plusieurs reprises de liaison.

NOTE: Je ne peux pas modifier la question donc je répondu à cela comme une solution.

Créé 11/08/2014 à 11:35
source utilisateur

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