Javascript : une variable qui passe pas sur FF ... bizarre !!!

Javascript : une variable qui passe pas sur FF ... bizarre !!! - HTML/CSS - Programmation

Marsh Posté le 05-09-2006 à 11:11:38    

Je ne comprends pas... sur IE ya aucun probleme... tout marche nickel, mes variables passent toutes... et PHP les mémorise sans probleme...
sur FF.. j'ai une variable qui ne passe pas ! la variable email... elle s'affiche dans mon champs hidden mais disparait aussitot ! donc ça ne passe pas !!
 
voici mon bout de code :
 

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  5. <script type="text/javascript">
  6. var msg="";
  7. function checkMail(xmail)
  8. {
  9. var x = xmail;
  10. var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  11. if (filter.test(x))
  12. {
  13. return true;
  14. }
  15. else
  16. {
  17. return false;
  18. }
  19. }
  20. function fillHiddenField(field,val)
  21. {
  22. document.getElementById(field).value=val;
  23. document.getElementById("et1" ).submit();
  24. }
  25.   function sendMail()
  26.   {
  27.   if(document.getElementById('nom').value!="" )
  28.   {
  29.   fillHiddenField('_nom',document.getElementById('nom').value);
  30.   var nom_ok=true;
  31.   }
  32.   else
  33.   {
  34.   msg+="Le champ \"Nom\" doit être saisi.\n";
  35.   }
  36.  
  37.   if(document.getElementById('email').value!="" )
  38.   {
  39.   fillHiddenField('_email',document.getElementById('email').value);
  40.   if(checkMail(document.getElementById('email').value))
  41.   {
  42.   var mail_ok=true;
  43.   }
  44.   else
  45.   {
  46.   msg+="Email invalide"
  47.   }
  48.  
  49.   }else
  50.   {
  51.  msg+="Le champ \"Email\" doit être saisi.\n";
  52.   }
  53.  
  54.   if(mail_ok==true && nom_ok==true)
  55.   {
  56.   //document.getElementById('_sendmail').value="ok";
  57.   fillHiddenField('_sendmail',"ok" );
  58.  
  59.   }
  60.   else
  61.   {
  62.   alert(msg);
  63.   return false;
  64.   }
  65.   }
  66. </script>
  67. <title>Simulation des co&ucirc;ts</title>
  68. </head>
  69. <body>
  70. <form name="et1" id="et1" action="/mavic_mp3/simul_cout.php" method="POST">
  71. <p><b>Roues : </b> REAR<br />
  72.  <b>Millesime : </b> 2007<br />
  73.  <b>Modele : </b> MTB - CROSSMAX ST<br />
  74.    </p>
  75. <table width="400" border="0">
  76.   <tr>
  77.     <td bgcolor="#CCCCCC">Simulation du co&ucirc;t du programme </td>
  78.   </tr>
  79.   <tr>
  80.     <td>
  81.   <p>Tarif MP3 pour
  82.     MTB - CROSSMAX ST     <br />
  83.     Roue avant : 22 €<br />Roue arrière : 27 €<br />Paire : 48 €<br />     </p></td>
  84.   </tr>
  85.   <tr>
  86.     <td bgcolor="#CCCCCC"><p>Recevoir/Envoyer par mail : </p>
  87.  
  88.       <table width="100%" border="0">
  89.         <tr>
  90.           <td>Nom de l'envoyeur : </td>
  91.           <td><input type="text" name="nom" id="nom" value=""/></td>
  92.         </tr>
  93.         <tr>
  94.           <td>Email : </td>
  95.           <td><input type="text" name="email" id="email" value=""/></td>
  96.         </tr>
  97.         <tr>
  98.           <td>Message : </td>
  99.           <td><textarea name="texte_libre" id="texte_libre"></textarea></td>
  100.         </tr>
  101.         <tr>
  102.           <td>&nbsp;</td>
  103.           <td><input type="button" name="send"  id="send" value="Envoyer" onclick="sendMail();" /></td>
  104.         </tr>
  105.       </table>
  106.       <p>
  107.         <label></label>
  108.       </p>
  109.    
  110.     <p>&nbsp; </p></td>
  111.   </tr>
  112. </table>
  113.     <table>
  114.       <tr>
  115.         <td colspan="2">Mon Produit</td>
  116.       </tr>
  117.       <tr>
  118.         <td>Roues achet&eacute;es : </td>
  119.         <td><select name="roue" onChange="fillHiddenField('_roue',this.value);return false;">
  120.             <option value=""></option>
  121.             <option value="FRT">FRT</option><option value="REAR" selected="selected">REAR</option><option value="PR">PR</option>          </select>        </td>
  122.       </tr>
  123.       <tr>
  124.         <td>Gamme concern&eacute;e : </td>
  125.         <td><select name="millesime" onChange="fillHiddenField('_millesime',this.value);return false;">
  126.             <option value="">Choisir parmi les gammes</option>
  127.             <option value='2007' selected="selected" >2007</option>          </select>        </td>
  128.       </tr>
  129.       <tr>
  130.         <td>Mod&egrave;le concern&eacute;e : </td>
  131.         <td><select name="modele" onChange="fillHiddenField('_modele',this.value);return false;">
  132.             <option value="">Choisir parmi les mod&egrave;les</option>
  133.             <option value="ROAD - COSMIC CARBONE PRO">ROAD - COSMIC CARBONE PRO</option><option value="ROAD - COMETE">ROAD - COMETE</option><option value="ROAD - COSMIC CARBONE SL PREMIUM">ROAD - COSMIC CARBONE SL PREMIUM</option><option value="ROAD - COSMIC CARBONE SL">ROAD - COSMIC CARBONE SL</option><option value="ROAD - COSMIC ELITE">ROAD - COSMIC ELITE</option><option value="ROAD - KSYRIUM ES">ROAD - KSYRIUM ES</option><option value="ROAD - KSYRIUM SL">ROAD - KSYRIUM SL</option><option value="ROAD - KSYRIUM ELITE Black">ROAD - KSYRIUM ELITE Black</option><option value="ROAD - KSYRIUM ELITE Silver">ROAD - KSYRIUM ELITE Silver</option><option value="ROAD - KSYRIUM EQUIPE Black">ROAD - KSYRIUM EQUIPE Black</option><option value="ROAD - KSYRIUM EQUIPE Silver">ROAD - KSYRIUM EQUIPE Silver</option><option value="ROAD - AKSIUM Silver">ROAD - AKSIUM Silver</option><option value="ROAD - AKSIUM Black">ROAD - AKSIUM Black</option><option value="MTB - CROSSMAX SLR">MTB - CROSSMAX SLR</option><option value="MTB - CROSSMAX  SLR DISC">MTB - CROSSMAX  SLR DISC</option><option value="MTB - CROSSMAX  SLR DISC Lefty">MTB - CROSSMAX  SLR DISC Lefty</option><option value="MTB - CROSSMAX SL DISC">MTB - CROSSMAX SL DISC</option><option value="MTB - CROSSMAX ST" selected>MTB - CROSSMAX ST</option><option value="MTB - CROSSMAX ST DISC">MTB - CROSSMAX ST DISC</option><option value="MTB - CROSSTRAIL">MTB - CROSSTRAIL</option><option value="MTB - CROSSTRAIL DISC">MTB - CROSSTRAIL DISC</option><option value="MTB - CROSSLAND Silver">MTB - CROSSLAND Silver</option><option value="MTB - CROSSLAND Black">MTB - CROSSLAND Black</option><option value="MTB - CROSSRIDE Silver">MTB - CROSSRIDE Silver</option><option value="MTB - CROSSRIDE Black">MTB - CROSSRIDE Black</option><option value="MTB - CROSSRIDE DISC">MTB - CROSSRIDE DISC</option><option value="MTB - CROSSMAX SX">MTB - CROSSMAX SX</option><option value="MTB - DEEMAX UST">MTB - DEEMAX UST</option><option value="MTB - DEEMAX 12x150">MTB - DEEMAX 12x150</option><option value="MTB - DEETRAKS">MTB - DEETRAKS</option><option value="ASPHALT - SPEEDCITY">ASPHALT - SPEEDCITY</option><option value="TRACK - ROUE IO PISTE">TRACK - ROUE IO PISTE</option><option value="TRACK - COMETE PISTE BOYAU">TRACK - COMETE PISTE BOYAU</option><option value="TRACK - ELLIPSE">TRACK - ELLIPSE</option>          </select>        </td>
  134.       </tr>
  135.       <tr>
  136.         <td>
  137.           <input type="hidden" name="_roue" id="_roue" value="REAR"/>
  138.    <input type="hidden" name="_millesime" id="_millesime" value="2007"/>
  139.    <input type="hidden" name="_modele" id="_modele" value="MTB - CROSSMAX ST"/>
  140.       <input type="hidden" name="_nom" id="_nom" value=""/>
  141.        <input type="hidden" name="_email" id="_email" value=""/>
  142.      <input type="hidden" name="_sendmail" id="_sendmail" value=""/>        </td>
  143.         <td>
  144.           <input type="submit" name="envoi" value="Envoyer">       </td>
  145.       </tr>
  146.     </table>
  147. </form>
  148. </body>
  149. </html>

Reply

Marsh Posté le 05-09-2006 à 11:11:38   

Reply

Marsh Posté le 05-09-2006 à 11:52:50    

j'ai reussit à corriger le truc mais ça repond pas vraiment à la question du pourquoi du comment.... mais voila ce que j'ai fait, j'ai remplacé le input type="button" par un input type="submit" ... je comprends pas parceque ça marchait avec tous les champs sauf celui là !
 
ya t il des choses importantes à savoir à propos de la fonction submit en javascript ?
 
j'ai souvent utilisé document.getElementById("form" ).submit();
 
en général ça marche tres bien ! sauf sur mac... et là dans FF... je commence à douter de cette fonction !

Reply

Marsh Posté le 05-09-2006 à 12:41:30    

Selon ce site : http://www.commentcamarche.net/html/htmlform.php3
en javascript le type "button" n'existe pas pour la balise INPUT.
C'est peut etre du JScript

Reply

Marsh Posté le 05-09-2006 à 14:20:20    

Le type "button" existe bien pour un input.
 
La différence par rapport à un "submit", c'est que c'est un bouton qui ne déclanche pas la soumission du formulaire.

Reply

Marsh Posté le 05-09-2006 à 14:26:43    

PS : c'est quoi l'intérêt de dupliquer les éléments envoyés par la requête ?
 
nom et _nom
roue et _roue
...
 
Et c'est quoi la différence pour toi entre les boutons "send" et "envoi"

Reply

Marsh Posté le 05-09-2006 à 17:40:33    

tout simplement parceque je me suis calqué sur un truc deja existant, et que je voulais que le formulaire s'envoit au moment ou un parametre est changé et pas quand on clique sur "envoyer" bref je sais c pas génial ! mais c t deja fait un peu comme ça !
 
pour le bouton send et envoi... au debut je voulais deux formulaires différents un pour la partie email et un autre pour la partie requetes/contenu... au final j'ai fait un seul et unique formulaire

Reply

Sujets relatifs:

Leave a Replay

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