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"; } } }
Partager