Pb javascript et formulaire avec validation par touche entrée

Pb javascript et formulaire avec validation par touche entrée - HTML/CSS - Programmation

Marsh Posté le 15-10-2009 à 20:26:35    

Lorsque l'utilisateur veut lancer une recherche, je vérifie si le champ de saisie est vide et aussi sa manière de valider : soit en cliquant sur le bouton "recherche", soit en validant par la touche "entrée".
 
Après que l'utilisateur effectue une recherche avec un mot clé (trouvé ou non trouvé) la 1ère fois, s'il essaie de valider le champ de saisi VIDE en validant la touche entrée (et non en cliquant sur le bouton recherche), il y a bien un message d'erreur MAIS la page est rechargée! Pour l'instant, j'ai fais une petite vérification en PHP pour déterminer si le champ est vide, donc l'utilisateur obtient le message "Veuillez indiquer votre recherche." sur la page.  
 
Ma question est : pourquoi la page est-elle rechargée en validant par la touche entrée alors que le champ est vide? Devrais-je interdire complètement l'utilisation de la touche entrée? (un peu trop simple à mon goût!)
 
Voici mon code simplifié :

Code :
  1. <script type="text/javascript">
  2. <!--
  3. function controle()
  4. {
  5. if(document.formrecherche.saisi.value!='')
  6. {
  7.   document.formrecherche.action = "index-recherche.html";
  8.   document.formrecherche.submit();
  9. }
  10. else
  11. {
  12.   alert("marche pas!" );
  13. }
  14. }
  15. -->
  16. </script>
  17. </head>
  18. <body>
  19. <form name="formrecherche" method="post">
  20. <input name="saisi" id="saisi" type="text" size="30" onKeyPress="if(event.keyCode == 13) controle();"/>
  21. <input class="bouton" type="button" name="test" value="Rechercher" onClick="controle();"></form>
  22. </body>
  23. </html>


 
Je vous remercie d'avance!

Message cité 1 fois
Message édité par angelseb le 16-10-2009 à 10:46:18
Reply

Marsh Posté le 15-10-2009 à 20:26:35   

Reply

Marsh Posté le 15-10-2009 à 23:29:01    

angelseb a écrit :

Sur le site que je suis en train de développer www.chezlafeealsacienne.fr, j'ai des soucis avec la recherche.

 

Lorsque l'utilisateur veut lancer une recherche, je vérifie si le champ de saisie est vide et aussi sa manière de valider : soit en cliquant sur le bouton "recherche", soit en validant par la touche "entrée".

 

Après que l'utilisateur effectue une recherche avec un mot clé (trouvé ou non trouvé) la 1ère fois, s'il essaie de valider le champ de saisi VIDE en validant la touche entrée (et non en cliquant sur le bouton recherche), il y a bien un message d'erreur MAIS la page est rechargée! Pour l'instant, j'ai fais une petite vérification en PHP pour déterminer si le champ est vide, donc l'utilisateur obtient le message "Veuillez indiquer votre recherche." sur la page.

 

Ma question est : pourquoi la page est-elle rechargée en validant par la touche entrée alors que le champ est vide? Devrais-je interdire complètement l'utilisation de la touche entrée? (un peu trop simple à mon goût!)

 

Voici mon code simplifié :

Code :
  1. <script type="text/javascript">
  2. <!--
  3. function controle()
  4. {
  5. if(document.formrecherche.saisi.value!='')
  6. {
  7.   document.formrecherche.action = "index-recherche.html";
  8.   document.formrecherche.submit();
  9. }
  10. else
  11. {
  12.   alert("marche pas!" );
  13. }
  14. }
  15. -->
  16. </script>
  17. </head>
  18. <body>
  19. <form name="formrecherche" method="post">
  20. <input name="saisi" id="saisi" type="text" size="30" onKeyPress="if(event.keyCode == 13) controle();"/>
  21. <input class="bouton" type="button" name="test" value="Rechercher" onClick="controle();"></form>
  22. </body>
  23. </html>
 

Je vous remercie d'avance!


ta façon de faire est juste la plus dégueulasse qui soit

 
Code :
  1. <script type="text/javascript">
  2. <!--
  3. function controle(form)
  4. {
  5.  if(form.saisi.value=='') {
  6.  alert("marche pas!" );
  7.  return false;
  8.  }
  9.  return true
  10. }
  11. -->
  12. </script>
  13. </head>
  14. <body>
  15. <form method="post" action="index-recherche.html" onsubmit="return controle(this);">
  16. <input name="saisi" id="saisi" type="text" size="30"/>
  17. <input class="bouton" type="submit" name="test" value="Rechercher">
  18. </form>
  19. </body>
  20. </html>
 

Qu'est ce que j'ai fait ?
J'ai mis le type="submit" sur le bouton, car dès que tu fais "Entrée" sur un input et que ton formulaire possède un submit, ça éxécute le formulaire.
Ensuite j'ai viré tous tes JS à la con, sur le onsumit du formulaire je retourne true ou false, si je retourne false, le formulaire ne sera pas envoyé, si je retourne true, il le sera.
Donc la fonction controle elle retournera true ou false selon la valeur contenue dans 'saisi'


Message édité par gatsu35 le 15-10-2009 à 23:31:23

---------------
Blablaté par Harko
Reply

Marsh Posté le 16-10-2009 à 10:45:21    

Je te remercie pour ton aide...
 
Sauf que j'aurai préféré éviter tes remarques "à la con" même si tu as raison. Voilà pourquoi j'évite de demander sur les forums de l'aide car la plupart des gens ne peuvent pas s'emêcher d'être désagréable.
 
C'est pas difficile pourtant d'expliquer gentiment, en disant d'éviter d'utiliser des javascript à tout va, non? Bref...
 

Reply

Marsh Posté le 16-10-2009 à 11:53:46    

angelseb a écrit :

Je te remercie pour ton aide...
 
Sauf que j'aurai préféré éviter tes remarques "à la con" même si tu as raison. Voilà pourquoi j'évite de demander sur les forums de l'aide car la plupart des gens ne peuvent pas s'emêcher d'être désagréable.
 
C'est pas difficile pourtant d'expliquer gentiment, en disant d'éviter d'utiliser des javascript à tout va, non? Bref...
 


Si je suis si directe c'est que tout le code, du HTML au Javascript n'était pas du tout la bonne façon de faire.
Après oui je suis un grand méchant et je fais des remarques qui ne sont pas con, mais directes.
Et si ça te fait mal au cul de prendre des remarques quand tu vas sur les forums ben n'y vas pas.
 
Avant j'étais mauvais, je me suis pris de belles claques et des remarques encore plus méchantes, du genre : "c'est de la vraie merde ce que tu as fait"
j'ai demandé pourquoi, on m'a expliqué et j'ai tout de suite compris et au fur et à mesure mon code est devenu clean.
 
C'est en se prenant des remarques de merde qu'on avance :o
 
sinon tu vas sur alsacréations tu n'auras pas ce genre de remarques


---------------
Blablaté par Harko
Reply

Marsh Posté le 16-10-2009 à 11:59:29    

gatsu35 a écrit :


Si je suis si directe c'est que tout le code, du HTML au Javascript n'était pas du tout la bonne façon de faire.
Après oui je suis un grand méchant et je fais des remarques qui ne sont pas con, mais directes.
Et si ça te fait mal au cul de prendre des remarques quand tu vas sur les forums ben n'y vas pas.
 
Avant j'étais mauvais, je me suis pris de belles claques et des remarques encore plus méchantes, du genre : "c'est de la vraie merde ce que tu as fait"
j'ai demandé pourquoi, on m'a expliqué et j'ai tout de suite compris et au fur et à mesure mon code est devenu clean.
 
C'est en se prenant des remarques de merde qu'on avance :o
 
sinon tu vas sur alsacréations tu n'auras pas ce genre de remarques


 
N'importe quoi. Bravo la mentalité. C'est pas parce qu'on t'a déjà dis que t'as fais de la merde (et tout le monde en a fait un jour ou l'autre) qu'il faut se gêner pour le dire.
 
C'est PAS en se prenant des remarques de MERDE qu'on avance, c'est en se faisant expliquer par a+b qu'on avance, GROSSE nuance.
 
La prochaine fois, passe ton chemin plutôt que de critiquer.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed