Bonjour a tous
J'implore votre aide pour un problème que j'ai sur un formulaire d'identification.
Jusque là, sans ajax, un simple onsubmit="return ..." fonctionnait, mais avec ajax je me rend compte que ce n'est plus possible..
Donc un formulaire tout bête pseudo/pass:
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <div id="compte"> <form method="post" name="login" onsubmit="return logMe();"> Pseudo <input size="15" maxlength="40" class="login" type="text" id="inputLoginNick" name="inputLoginNick" value="" /> Mot d'passe <input size="15" maxlength="30" class="login" type="password" name="inputLoginPwd" id="inputLoginPwd" value="" /> <span id="logResult"></span> <input type="submit" value="Envoyer" /> </form> </div>
Et la fonction js:
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 function logMe() { var content = document.getElementById("logResult"); var pseudo = document.login.elements["inputLoginNick"].value; var mdp = document.login.elements["inputLoginPwd"].value; var data = 'pseudo='+pseudo+'&mdp='+mdp+'&action=login'; xhrObj.open("POST", "noreload.php", false); xhrObj.onreadystatechange = function() { if (xhrObj.readyState == 4 && xhrObj.status == 200) { switch(xhrObj.responseText) { case "1": content.innerHTML = 'Compte non activé'; return false; case "2": return true; case "3": content.innerHTML = 'Mot de passe invalide'; return false; case "4": content.innerHTML = 'Compte inexistant'; return false; case "5": content.innerHTML = 'Entrez votre pseudonyme'; return false; case "6": content.innerHTML = 'Entrez votre mot de passe'; return false; case "7": content.innerHTML = 'Entrez vos identifiants'; return false; default: content.innerHTML = 'Erreur! Signalez ce bug!'; return false; } } }; xhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); xhrObj.send(data); };
La réponse reviens bien, et s'inscrit dans le span, seulement elle n'y reste pas, car le formulaire est quand même envoyé malgré le return false...
A l'aide!![]()
Partager