appel de deux fonctions javascript dans un onsubmit

appel de deux fonctions javascript dans un onsubmit - HTML/CSS - Programmation

Marsh Posté le 05-06-2008 à 23:25:09    

Bonsoir,
 
J'ai actuellement un problème que je n'arrive pas à résoudre depuis plus d'un jour.
Comme dit dans le titre, je voudrais effectuer deux fonctions javascript dans un onsubmit.
Le problème est que ca ne marche  :cry:  
Les deux fonctions marchent indépendament mais ne marche plus une fois ensemble.
Je vous joint le code pour que vous puissiez vous faire votre idée.
 

Code :
  1. <script language="JavaScript">
  2. function verifidentifiant()
  3. {
  4.  a = document.materiel.num.value;
  5.  var ok=true;
  6.  if(a=="" )
  7.  {
  8.  alert("Veuillez entrer l'identifiant" ); ok=false;
  9.  return ok;
  10.  }
  11. }
  12. function CheckDate()
  13. {
  14.   d = document.materiel.date_achat.value;
  15.       var amin=1999;
  16.       var amax=2050;
  17.       var separateur="/";
  18.       var j=(d.substring(0,2));
  19.       var m=(d.substring(3,5));
  20.       var a=(d.substring(6));
  21.       var ok=true;
  22.  
  23.   if(d=="" ){
  24.   ok=true;}
  25.   else
  26.   {
  27.       if ( ((isNaN(j))||(j<1)||(j>31)) && (ok==1) ) {
  28.          alert("Le jour d'achat n'est pas correct." ); ok=false;
  29.   return ok;
  30.       }
  31.       if ( ((isNaN(m))||(m<1)||(m>12)) && (ok==1) ) {
  32.          alert("Le mois d'achat n'est pas correct." ); ok=false;
  33.   return ok;
  34.       }
  35.       if ( ((isNaN(a))||(a<amin)||(a>amax)) && (ok==1) ) {
  36.          alert("L'année d'achat n'est pas correcte." ); ok=false;
  37.   return ok;
  38.       }
  39.       if ( ((d.substring(2,3)!=separateur)||(d.substring(5,6)!=separateur)) && (ok==1) ) {
  40.          alert("Les séparateurs doivent être des "+separateur+" pour la date d'achat" ); ok=false;
  41.   return ok;
  42.       }
  43.       if (ok==1) {
  44.          var d2=new Date(a,m-1,j);
  45.          j2=d2.getDate();
  46.          m2=d2.getMonth()+1;
  47.          a2=d2.getFullYear();
  48.          if (a2<=100) {a2=1900+a2}
  49.          if ( (j!=j2)||(m!=m2)||(a!=a2) ) {
  50.             alert("La date "+d+" n'existe pas !" );
  51.             ok=false;
  52.   void window.stop()
  53.   return ok;
  54.          }
  55.       }
  56.   }
  57.   d = document.materiel.date_deb_gar.value;
  58.       var amin=1999;
  59.       var amax=2050;
  60.       var separateur="/";
  61.       var j=(d.substring(0,2));
  62.       var m=(d.substring(3,5));
  63.       var a=(d.substring(6));
  64.       var ok=true;
  65.   if (d=="Aucune" || d=="" ){
  66.   ok=true;
  67.   }
  68.   else{
  69.       if ( ((isNaN(j))||(j<1)||(j>31)) && (ok==1) ) {
  70.          alert("Le jour de début de garantie n'est pas correct." ); ok=false;
  71.   return ok;
  72.       }
  73.       if ( ((isNaN(m))||(m<1)||(m>12)) && (ok==1) ) {
  74.          alert("Le mois de début de garantie n'est pas correct." ); ok=false;
  75.   return ok;
  76.       }
  77.       if ( ((isNaN(a))||(a<amin)||(a>amax)) && (ok==1) ) {
  78.          alert("L'année de début de garantie n'est pas correcte." ); ok=false;
  79.   return ok;
  80.       }
  81.       if ( ((d.substring(2,3)!=separateur)||(d.substring(5,6)!=separateur)) && (ok==1) ) {
  82.          alert("Les séparateurs doivent être des "+separateur+" pour le début de garantie" ); ok=false;
  83.   return ok;
  84.       }
  85.       if (ok==1) {
  86.          var d2=new Date(a,m-1,j);
  87.          j2=d2.getDate();
  88.          m2=d2.getMonth()+1;
  89.          a2=d2.getFullYear();
  90.          if (a2<=100) {a2=1900+a2}
  91.          if ( (j!=j2)||(m!=m2)||(a!=a2) ) {
  92.             alert("La date "+d+" n'existe pas !" );
  93.             ok=false;
  94.   void window.stop()
  95.   return ok;
  96.          }
  97.       }
  98.   }
  99.  
  100.   d = document.materiel.date_fin_gar.value;
  101.       var amin=1999;
  102.       var amax=2050;
  103.       var separateur="/";
  104.       var j=(d.substring(0,2));
  105.       var m=(d.substring(3,5));
  106.       var a=(d.substring(6));
  107.       var ok=true;
  108.   if (d=="Aucune" || d=="" ){
  109.   ok=true;
  110.   }
  111.   else{
  112.       if ( ((isNaN(j))||(j<1)||(j>31)) && (ok==1) ) {
  113.          alert("Le jour de fin de garantie n'est pas correct." ); ok=false;
  114.   return ok;
  115.       }
  116.       if ( ((isNaN(m))||(m<1)||(m>12)) && (ok==1) ) {
  117.          alert("Le mois de fin de garantie n'est pas correct." ); ok=false;
  118.   return ok;
  119.       }
  120.       if ( ((isNaN(a))||(a<amin)||(a>amax)) && (ok==1) ) {
  121.          alert("L'année de fin de garantie n'est pas correcte." ); ok=false;
  122.   return ok;
  123.       }
  124.       if ( ((d.substring(2,3)!=separateur)||(d.substring(5,6)!=separateur)) && (ok==1) ) {
  125.          alert("Les séparateurs doivent être des "+separateur+" pour la fin de garantie" ); ok=false;
  126.   return ok;
  127.       }
  128.       if (ok==1) {
  129.          var d2=new Date(a,m-1,j);
  130.          j2=d2.getDate();
  131.          m2=d2.getMonth()+1;
  132.          a2=d2.getFullYear();
  133.          if (a2<=100) {a2=1900+a2}
  134.          if ( (j!=j2)||(m!=m2)||(a!=a2) ) {
  135.             alert("La date "+d+" n'existe pas !" );
  136.             ok=false;
  137.   void window.stop()
  138.   return ok;
  139.          }
  140.       }
  141.   }
  142.  
  143.   d = document.materiel.sortie_compta.value;
  144.       var amin=1999;
  145.       var amax=2050;
  146.       var separateur="/";
  147.       var j=(d.substring(0,2));
  148.       var m=(d.substring(3,5));
  149.       var a=(d.substring(6));
  150.       var ok=true;
  151.   if(d=="" )
  152.   {
  153.   ok=true;
  154.   }
  155.   else
  156.   {
  157.       if ( ((isNaN(j))||(j<1)||(j>31)) && (ok==1) ) {
  158.          alert("Le jour de sortie de compta n'est pas correct." ); ok=false;
  159.   return ok;
  160.       }
  161.       if ( ((isNaN(m))||(m<1)||(m>12)) && (ok==1) ) {
  162.          alert("Le mois de sortie de compta n'est pas correct." ); ok=false;
  163.   return ok;
  164.       }
  165.       if ( ((isNaN(a))||(a<amin)||(a>amax)) && (ok==1) ) {
  166.          alert("L'année de sortie de compta n'est pas correcte." ); ok=false;
  167.   return ok;
  168.       }
  169.       if ( ((d.substring(2,3)!=separateur)||(d.substring(5,6)!=separateur)) && (ok==1) ) {
  170.          alert("Les séparateurs doivent être des "+separateur+" pour la sortie de compta" ); ok=false;
  171.   return ok;
  172.       }
  173.       if (ok==1) {
  174.          var d2=new Date(a,m-1,j);
  175.          j2=d2.getDate();
  176.          m2=d2.getMonth()+1;
  177.          a2=d2.getFullYear();
  178.          if (a2<=100) {a2=1900+a2}
  179.          if ( (j!=j2)||(m!=m2)||(a!=a2) ) {
  180.             alert("La date "+d+" n'existe pas !" );
  181.             ok=false;
  182.   void window.stop()
  183.   return ok;
  184.          }
  185.       }
  186.   }
  187. }
  188. function Verif()
  189. {
  190. verifidentifiant();
  191. CheckDate();
  192. if (var ok==0)
  193. {void window.stop()
  194. }
  195. }
  196. </script>

 
 
Merci de votre aide.

Reply

Marsh Posté le 05-06-2008 à 23:25:09   

Reply

Marsh Posté le 06-06-2008 à 00:00:09    

et le onclick ? :D


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 06-06-2008 à 00:01:46    

theredled a écrit :

et le onclick ? :D


c'est à dire?

Reply

Marsh Posté le 06-06-2008 à 00:04:46    

C-a-d que là on a que du JS, mais pas le code du onclick qui l'appelle...


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 06-06-2008 à 00:05:18    

(donc il faudrait au moins le code html du onclick)


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 06-06-2008 à 00:07:19    

theredled a écrit :

(donc il faudrait au moins le code html du onclick)


Code :
  1. <html>
  2. <head>
  3. <link href="../style/style.css" rel="stylesheet" type="text/css" media="screen" />
  4. </head>
  5. <title>Gestion du matériel</title>
  6. <form method="POST" name="materiel" action="materiel_ajout_trait.php" onsubmit= "Verif();">
  7. Identifiant:* <br>
  8. <input type="text" name="num" size="40" /><br>
  9. Libellé: <br>
  10. <input type="text" name="libelle" size="40" /><br>
  11. Numéro compta:<br>
  12. <input type="text" name="num_compta" size="40" /><br>
  13. Prix d'achat:<br>
  14. <input type="text" name="prix_achat" size="40" /><br>
  15. Durée ammortissement: <br>
  16. <input type="text" name="duree_amo" size="40" /><br>
  17. Fournisseur:<br>
  18. <select name="fournisseur">
  19.  <?php
  20.  $liste_fournisseur = odbc_exec($odbc,"SELECT num_fournisseur, Nom_fournisseur FROM fournisseur" );
  21.  while($donnee_fournisseur=odbc_fetch_array($liste_fournisseur)) {?>
  22.  <option value="<?php echo $donnee_fournisseur['num_fournisseur'] ?>" > <?php echo $donnee_fournisseur['Nom_fournisseur']; ?> </option>
  23.  <?php }?>
  24. </select>
  25. <br/>
  26. Marque:<br/>
  27. <select name="marque">
  28. <option value="">Choisir une marque<option>
  29. <option>Brother</option>
  30. <option>Dell</option>
  31. <option>Canon</option>
  32. <option>HP</option>
  33. <option>Konica Minolta</option>
  34. <option>Netasq</option>
  35. <option>Shuttle</option>
  36. <option>Microsoft</option>
  37. <option>Pas de marque</option>
  38. </select>
  39. <br>
  40. Date d'achat: (JJ/MM/AAAA)<br>
  41. <input type="text" name="date_achat"  />
  42. <br>
  43. Date début garantie: <br>
  44. <input type="text" name="date_deb_gar" />
  45. <br>
  46. Date fin garantie: <br>
  47. <input type="text" name="date_fin_gar" />
  48. <br>
  49. Sortie Comptabilité:<br>
  50. <input type="text" name="sortie_compta" />
  51. <br>
  52. Actif:<br>
  53. <select name="actif">
  54. <option value="">Actif ?<option>
  55. <option>Oui</option>
  56. <option>Non</option>
  57. </select>
  58. <br>
  59. Type:<br>
  60. <select name="type">
  61. <option value="">Choisir un type<option>
  62. <option>Firewall</option>
  63. <option>Imprimante</option>
  64. <option>Portable</option>
  65. <option>Unité centrale</option>
  66. <option>Serveur</option>
  67. <option>Serveur TSE</option>
  68. <option>Scanner</option>
  69. <option>Switch</option>
  70. <option>Video Projecteur</option>
  71. <option>Logiciel</option>
  72. <option>Armoire serveurs</option>
  73. </select>
  74. <br>
  75. Utilisateur:<br>
  76. <select name="utilisateur">
  77.  <?php
  78.  $liste_utilisateur = odbc_exec($odbc,"SELECT num_utilisateur, Nom_utilisateur, Prenom_utilisateur FROM Utilisateurs INNER JOIN Site on Site.num_site=utilisateurs.num_site where nom_site NOT LIKE 'Plus dans la %' order by Nom_utilisateur" );
  79.  while($donnee_utilisateur=odbc_fetch_array($liste_utilisateur)) {?>
  80.  <option value="<?php echo $donnee_utilisateur['num_utilisateur'] ?>" > <?php echo $donnee_utilisateur['Nom_utilisateur'].' '.$donnee_utilisateur['Prenom_utilisateur']; ?> </option>
  81.  <?php }?>
  82. </select>
  83. <br>
  84. Societe facturée:<br>
  85. <input type="text" name="societe_facturee">
  86. <br>
  87. Numéro de facture:<br>
  88. <input type="text" name="num_facture">
  89. <br>
  90. <input type="submit" name="ajouter" value="Ajouter">
  91. </form>

Reply

Marsh Posté le 06-06-2008 à 00:13:58    

Je ne vois pas de onsubmit (pas onclick, dsl) avec 2 appels de fonctions...


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 06-06-2008 à 00:16:01    

theredled a écrit :

Je ne vois pas de onsubmit (pas onclick, dsl) avec 2 appels de fonctions...


 
oui mais si je met un onclick, dès que je cliquerais, ca me dira une erreur non?

Reply

Marsh Posté le 06-06-2008 à 00:19:13    

Non je disais juste que jke m'étais planté de mot, j'ai dit onclick alors que tu parlais de onsubmit, bref oublie :D et file le code de ton onsubmit avec *2* appels de fonctions stp ;)


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 06-06-2008 à 00:20:45    

theredled a écrit :

Non je disais juste que jke m'étais planté de mot, j'ai dit onclick alors que tu parlais de onsubmit, bref oublie :D et file le code de ton onsubmit avec *2* appels de fonctions stp ;)


 
c'est justement là que j'ai du mal. :wahoo:

Reply

Marsh Posté le 06-06-2008 à 00:20:45   

Reply

Marsh Posté le 06-06-2008 à 00:24:34    

Aaah t'as pas écrit de code ?
 
c'est

Code :
  1. <form onsubmit="fonction1(); fonction2();">


 
C'est ni plus ni moins que du JS tout con que tu écris dans le onsubmit.


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 06-06-2008 à 00:29:55    

theredled a écrit :

Aaah t'as pas écrit de code ?
 
c'est

Code :
  1. <form onsubmit="fonction1(); fonction2();">


 
C'est ni plus ni moins que du JS tout con que tu écris dans le onsubmit.


 
Ca ne marche toujours pas
 
Le code ne s'arrete pas après un alert()
Le but est  messagebox -> arret du chargement,
 
Et je n'arrive pas.  :fou:

Reply

Marsh Posté le 06-06-2008 à 00:36:26    

Et tu veux toujours pas faire voir ton code ?


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 06-06-2008 à 00:37:47    

theredled a écrit :

Et tu veux toujours pas faire voir ton code ?


 
ben il est en 2 parties, mais le code est entier.
 
Que veux tu de plus?
 
Ya le html/php et le javascript.

Reply

Marsh Posté le 06-06-2008 à 00:40:20    

Je ne vois aucun onsubmit qui comporte deux fonctions, ou alors dis-moi la ligne...


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 06-06-2008 à 00:41:41    

theredled a écrit :

Je ne vois aucun onsubmit qui comporte deux fonctions, ou alors dis-moi la ligne...


 
<form method="POST" name="materiel" action="materiel_ajout_trait.php" onsubmit= "verifidentifiant(); CheckDate();">
 
désolé, je t'ai donné une version test.  :jap:

Reply

Marsh Posté le 06-06-2008 à 00:54:31    

Déja, ta première fonction ne retourne rien si a n'est pas vide. Elle devrait retourner true.
Ensuite je vois pas du tout à quoi te sert ta variable ok :D des return true / return false tout simples suffiraient et serait plus lisibles.
 
Quand t'aura modifier ça je reregarderais ton pb, je sais qu'il y a des cas suivant ce que renvoie telle ou telle fonction, mais je sais plus exactement.
 
En tout cas perso je ferait plutot un onsubmit="return verifidentifiant() && CheckDate();"


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 06-06-2008 à 00:59:05    

theredled a écrit :

Déja, ta première fonction ne retourne rien si a n'est pas vide. Elle devrait retourner true.
Ensuite je vois pas du tout à quoi te sert ta variable ok :D des return true / return false tout simples suffiraient et serait plus lisibles.
 
Quand t'aura modifier ça je reregarderais ton pb, je sais qu'il y a des cas suivant ce que renvoie telle ou telle fonction, mais je sais plus exactement.
 
En tout cas perso je ferait plutot un onsubmit="return verifidentifiant() && CheckDate();"


 
c'est bon c'était ça, ca marche!!!
 
J'ai du tenté tout ce qui était possible et réalisable sauf ca!!!
 
Merci


Message édité par filoulebauju le 06-06-2008 à 00:59:21
Reply

Marsh Posté le 06-06-2008 à 00:59:54    

C'est-à-dire ?
La première fonction qui retourne rien, ou le return a & b ?


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 06-06-2008 à 01:00:44    

theredled a écrit :

C'est-à-dire ?
La première fonction qui retourne rien, ou le return a & b ?


 
onsubmit="return verifidentifiant() && CheckDate();"

Reply

Marsh Posté le 06-06-2008 à 01:03:34    

okay :jap:
Mais ça n'empeche pas de prendre en compte mes remarques sur ton code :D


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 06-06-2008 à 09:32:31    

Citation :


Code :
  1. if (var ok==0)
  2. {void window.stop()
  3. }




Heu, là, la variable, tu la déclare. Je me demande si du coup, elle n'est pas initialisée à 0 à ce moment là, donc elle vaut toujours 0 !
Moi, je ferais retourner true ou false à tes fonctions checkdate et verifidentifiant, et je testerais les valeurs de retour, pas une hypotéthique variable ok pas déclarée correctement.


Message édité par kao98 le 06-06-2008 à 09:32:47

---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 06-06-2008 à 10:07:52    

Oulah oui j'avais pas vu ça :D
JS ne mets pas d'erreur pour un truc comme ça ?


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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