Bonjour à toutes et à tous,
J'ai effectué un test sur mon formulaire d'ajout d'annonce disposant d'un captcha, je constate que si l'utilisateur fait x tentatives fausses de saisie du code du captcha et qu'il saisisse enfin le bon code alors le message de réussite s'affiche x fois.
Pourtant j'ai mis ce message dans un .text() et non dans un .append()
Code javascript : 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 /** script permettant l'affichage de la zone d'ajout d'annonces **/ //le script a été modifié pour permettre l'upload de photo en requete AJAX //IL FAUT ABSOLUMENT PASSER PAR UN IFRAME sinon c'est impossible //on récupère ainsi dans les balises 'iframe' lors du chargement, le contenu html des balises <span> ayant pour id 'reponse' //La balise <span> aura la réponse à traiter $(function(){ // le chargement de la réponse du serveur se fera lors du clic sur le bouton de soumission du formulaire // ET NON AU CHARGEMENT DE LA PAGE! $(":submit").click(function() { $("#loader").show(); $("#iframe").load(function(event){ event.preventDefault(); var rep = $(this).contents().find('#reponse').html(); success : if(rep=="ok") { $("#loader").hide(); // on cache le loader d'attente Ajax $('.annonceSent').show("fast").text("L'upload s'est correctement effectué. Un email de confirmation a été envoyé"); $('.annonceSent').fadeOut(3000); //$('#annonceFormContainer').fadeOut(4000); $(":input", "#annonceForm").not(':submit').val(""); $("#captchaImage").attr("src", "image.php?text");// permet de regénérer uniquement que le captcha sans vider le formulaire } else{ if(rep.substr(0,7)=="captcha") { $("#loader").hide(); // on cache le loader d'attente Ajax $('.annonceSent').show().text("Veuillez saisir CORRECTEMENT le code du captcha!"); $('#captcha').val(""); $('#captcha').focus; $('.annonceSent').fadeOut(5000); //$("#reponse").hide(); $("#captchaImage").attr("src", "image.php?text");// permet de regénérer uniquement que le captcha sans vider le formulaire } // fin if(rep == "Erreur") if(rep.substr(0,6)=="Erreur") { $("#loader").hide(); // on cache le loader d'attente Ajax $('.formErreur').show().text("Erreur lors de l'upload!"); $('.formErreur').fadeOut(5000); } // fin if(rep == "Erreur") if(rep.substr(0,7)=="Fichier") { $("#loader").hide(); // on cache le loader d'attente Ajax $('.formErreur').show().text("Le fichier uploadé est trop volumineux!"); $('.formErreur').fadeOut(5000); } // fin if(rep == "fichier") if((rep.substr(0,4)=="vide") || (rep.substr(0,7)=="Absence")) { $("#loader").hide(); // on cache le loader d'attente Ajax $("#titre").focus(); $('.formErreur').show().text("Veuillez remplir tous les champs!"); $('.formErreur').fadeOut(5000); } // fin if(rep == "vide"ou "Absence") //window.location.reload(); //en cas d'erreur, il faut recharger la page entièrement pour regénérer correctement le CAPTCHA //ne fonctionne pas correctement : //le captcha est bien regénéré mais le code n'est pas valide! (j'ai l'impression qu'il y a un affichage trop rapide du captcha à saisir) //pour le tester, rajouter un span avec id captchaImage } // fin else }); // fin $("#iframe") }); // fin $(":submit").click() });// fin $(function())
Merci d'avance.
Transact.
Partager