Bonjour, j'ai un léger soucis avec mon javascript, en effet, lorsque je lance ma fonction afficher_bouton_upload() et que mes champs file sont valides, je passe bien par verifier_fichier() sauf que le resultat du img=onload ne s'affiche qu'une fois sorti de la fonction afficher_bouton_upload(). Problème, je n'ai ainsi pas la bonne valeur de la variable champ_valide pendant son exécution.
Merci d'avance

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
function recuperer_extension(input)
   {
         if (input!='')
         {
            var nom_fichier = input;// on récupere le chemin complet du fichier
            var extension = nom_fichier.split(".")[1];
            extension = nom_fichier.substring(nom_fichier.indexOf(".")+1);
            extension = extension.toLowerCase(); //on uniforme les caractères en minuscule au cas ou cela aurait été écris en majuscule
            return extension; // on renvoi l'extension vers la fonction appelante
         }
   }
 
 
function verifier_fichier(input, mode){
// on appelle la fonction permettant de récuperer l'extension du fichier envoyé et on stocke le résultat dans une variable 
    var extension = recuperer_extension(input.value);//
    var erreur = "";
    var mode = mode;
//on vérifie si l'extension récupérée est valide ou non  
    if(extension!="jpg" && extension!="jpeg" && extension!="gif" && extension!="png" && extension!=undefined){
        erreur +=  "L'extension "+extension+" n'est pas valide.\n Veuillez utiliser des images au format JPEG/GIF/PNG uniquement.";
        if(mode == 0)
        {
        alert(erreur);
        }
    }
    else{
    var poids = input.files[0].size;
    if(poids > 51200){// si le poids de l'image dépasse 1 Mo
        erreur += "Le poids de votre image est trop élevé.\n";
    }
 
    var fichier = input.files[0];
    window.URL = window.URL || window.webkitURL;
    img = new Image();
    img.onload = function(){
        var bool = bool;
        if(img.width >= 100 && img.height >= 100){
            erreur += "La résolution de votre image est incorrecte.";
        }
        if(erreur!='' && mode==0) {
            alert(erreur);
        }
        else if(erreur!='' && mode==1) {
            alert("test");
        }
        else if(erreur=='' && mode==1) {
            alert("je passe bien par ici");
            champ_valide++;
            //alert(input.id + "\n" + champ_valide);
        }
    }
    img.src = window.URL.createObjectURL(fichier);
    }
}
 
function afficher_bouton_upload() {
    if(document.form1.mode[0].checked)
    {
        champ_valide = 0;
        var test = 0;
        if(form1.question.value!='') {
            test++;
        }
        var champs = document.getElementById("compteur").value;
        var i=1;
        while(i<=champs) {
            alert(i);
            if(document.getElementById('fichier'+i).value!=0)
            {
            alert(i);
            var temp = document.getElementById('fichier'+i);
            verifier_fichier(temp, "1");
            }
            i++;
        }
        alert("test");
        alert(test + " " + champ_valide + " " + champs);
        if(test==1 && champ_valide==champs) {
            document.getElementById("validation").style.display = "block";
        }
    }
}