Contrôle formulaire : alert suivant oublis de l'utilisateur

Contrôle formulaire : alert suivant oublis de l'utilisateur - Javascript/Node.js - Programmation

Marsh Posté le 13-01-2018 à 18:54:20    

Salut tout le forum.
 
J’ai besoin de votre aide.
 
je crée un scripts en Javascript qui vérifie le contenu d’un formulaire.
 

Code :
  1. function controleCompteRendu(){
  2. var autorisation = true;
  3. // Si système est vide
  4. if(compteRendu.elements['systeme'].value == "" ){
  5.  alert("Il manque la désignation du système." );
  6.  autorisation = false;
  7. }
  8. // Si intervention_realisee est vide
  9. if(compteRendu.elements['intervention_realisee'].value == "" ){
  10.  alert("Il manque la description de l'intervention réalisée." );
  11.  autorisation = false;
  12. }
  13. // Si resultat est vide
  14. if(compteRendu.elements['resultat'].value == "" ){
  15.  alert("Il manque le résultat de l'intervention." );
  16.  autorisation = false;
  17. }
  18. // Si cout_horaire est vide
  19. if(compteRendu.elements['cout_horaire'].value == "" ){
  20.  alert("Il manque le coût horaire de main d'œuvre." );
  21.  autorisation = false;
  22. }
  23. return autorisation;
  24. }


Est-il possible de programmer pour n'avoir qu'une seule alert qui s'ouvre avec les bons messages adaptés à ce que l'utilisateur a oublié ?
 
Merci pour votre aide.


Message édité par kewan le 13-01-2018 à 18:55:16
Reply

Marsh Posté le 13-01-2018 à 18:54:20   

Reply

Marsh Posté le 13-01-2018 à 21:56:52    

Ce sujet a été déplacé de la catégorie Linux et OS Alternatifs vers la categorie Programmation par Black_lord


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 13-01-2018 à 22:10:49    

Non testé, syntaxe exacte à vérifier, plus ou moins pseudocode.

Code :
  1. function controleCompteRendu(){
  2. var msg="";
  3. // Si système est vide
  4. if(compteRendu.elements['systeme'].value == "" )
  5.  msg+="Il manque la désignation du système.\n";
  6. // Si intervention_realisee est vide
  7. if(compteRendu.elements['intervention_realisee'].value == "" )
  8.  msg+="Il manque la description de l'intervention réalisée.\n";
  9. //etc
  10. if(msg != "" )
  11. {
  12.  alert(msg);
  13.  return false;
  14. }
  15. else
  16. {
  17.  return true;
  18. }
  19. }


Reply

Marsh Posté le 13-01-2018 à 23:08:06    

Je préfère la solution de rat de combat mais sinon faut utiliser les else if...


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 14-01-2018 à 00:17:46    

MaybeEijOrNot a écrit :

sinon faut utiliser les else if...

Dans ce cas il n'y aura que le message pour le premier oubli, mais rien pour les autres. C'est pas le comportement cherché, l'idée c'est d'avoir un message qui indique tout les oublis en une seule fois.

Reply

Marsh Posté le 14-01-2018 à 00:29:35    

C'est pourquoi j'ai dit que je préférais ta solution. Mais Kewan semble oublier un basique, c'est pourquoi je le rappelle.
 
Sinon la meilleure solution reste de n'utiliser qu'un message du genre "formulaire incomplet ou incorrect" et de mettre en évidence chaque champ incorrect.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 14-01-2018 à 15:55:19    

:hello:  
 
Merci pour vos réponses.
 
Voila où j'en suis :
 

Code :
  1. function controleCompteRendu(){
  2. // Variable msg
  3. // A chaque défauts de saisie du formulaire un message sera ajouté par msg+=
  4. var msg = ['Il manque :<br><br>'];
  5. // Si système est vide
  6. if(compteRendu.elements['systeme'].value == "" ){
  7.  msg+="<li>La désignation du système.</li>";
  8. }
  9. // Si intervention_realisee est vide
  10. if(compteRendu.elements['intervention_realisee'].value == "" ){
  11.  msg+="<li>La description de l'intervention réalisée.</li>";
  12. }
  13. // Si resultat est vide
  14. if(compteRendu.elements['resultat'].value == "" ){
  15.  msg+="<li>Le résultat de l'intervention.</li>";
  16. }
  17. // etc...
  18. // Si il y a plus d'un message dans msg
  19. if(msg.length > 1 ){
  20.  // Faire apparaître la div affichageMessage
  21.  $('#affichageMessage').css('display','block');
  22.  // Faire apparaître balises <ol> de la div affichageMessage
  23.  $('#baliseOL').css('display','block');
  24.  // Afficher les messages
  25.  document.getElementById("baliseOL" ).innerHTML = msg;
  26.  // Bloquer l'envoie du formulaire
  27.  return false;
  28. }
  29. else{
  30.  // Autoriser l'envoie du formulaire
  31.  return true;
  32. }
  33. }


Message édité par kewan le 14-01-2018 à 17:06:44
Reply

Marsh Posté le 14-01-2018 à 16:54:17    

Code :
  1. var msg = ['Il manque :<br><br>'];


 

Code :
  1. msg+="<li>La désignation du système.</li>";


 
Tu as testé? Pas certain que tu puisses utiliser cette affectation pour une variable de type array.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 14-01-2018 à 17:05:45    

MaybeEijOrNot a écrit :

Code :
  1. var msg = ['Il manque :<br><br>'];


 

Code :
  1. msg+="<li>La désignation du système.</li>";


 
Tu as testé? Pas certain que tu puisses utiliser cette affectation pour une variable de type array.


 
 
Oui j'ai testé voilà le résultat :
 
https://zupimages.net/up/18/02/w26j.jpg

Reply

Sujets relatifs:

Leave a Replay

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