Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2766 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Problème:boite de dialogue alert() avec chrome+safari - [Résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème:boite de dialogue alert() avec chrome+safari - [Résolu]

n°1933876
recep
Posté le 20-10-2009 à 17:11:06  profilanswer
 

Bonjour,
 
j'ai un petit souci avec le javascript sous google chrome et safari (pas encore testé sous firefox).
 
Je m'explique : je suis entrain de créer un nouveau site web pour notre société et il y a une partie avec un formulaire. Dans ce formulaire je dois controler le contenu avant de l'envoyer. C'est-à-dire vérifier si tous les champs sont remplis, etc.
Si un champ manque, j'ai une boite de dialoque (fonction alert()) qui s'affiche en me renseignant les zones vides à remplir.
 
Sous IE8 cela fonctionne trés bien, mais par contre sous Chrome ou Safari, lorsque je valide le formulaire, même quant certains champs ou bien tous les champs sont vides, cela renvoi un formulaire sans aucunes données sans que ma boite de dialogue apparaisse.
 
Est-ce que quelqu'un a une idée d'où le problème peut venir?
 
voici le code du formulaire ("envoi.inc.php" récupère les données et les transmets par mail vers une adresse en interne)  :


<form action="inc/envoi.inc.php" method="post" enctype="multipart/form-data" name="formulaire" onsubmit="MM_validateForm('nom','','R','prenom','','R','adresse','','R','numero','','R','cp','','R','commune','','R','telephone','','R','email','','RisEmail');return document.MM_returnValue">
 
Nom :<br /><input type="text" name="nom" size=30><span class="Style25">*</span><br />
Prénom :<br /><input type="text" name="prenom" size=30><span class="Style25">*</span><br />
Adresse :<br /><input type="text" name="adresse" size=30><span class="Style25">*</span> N° : <input type="text" name="numero" size="4"><span class="Style25">*</span><br />
Code Postal :<br /><input type="text" name="cp" size="4"><span class="Style25">*</span><br />
Commune :<br /><input type="text" name="commune" size=30><span class="Style25">*</span><br />
Tél :<br /><input type="text" name="telephone" size=30><span class="Style25">*</span><br />
E-mail :<br /><input type="text" name="email" size=30><span class="Style25">*</span><br />
Concerne :  
 <SELECT name="liste" size="1" class="style1">
 <OPTION VALUE="0">Choisissez</OPTION>
 <OPTION VALUE="1">Un</OPTION>
 <OPTION VALUE="2">Deux</OPTION>
 <OPTION VALUE="3">Autres</OPTION>
 </SELECT><br />
Votre message :<br /><textarea name="commentaire" rows="10" cols="50"></textarea><br />
<input class="style1" type="submit" name="Envoyer" VALUE="Envoyer">
<input class="style1" type="reset" VALUE="Effacer">
 
</form>


 
ici le script de vérification des champs :
 

function MM_validateForm()
 {
 if (document.getElementById)
  {
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3)
   {
   test=args[i+2];
   val=document.getElementById(args[i]);
   if (val)
    {
    nm=val.name;
    if ((val=val.value)!="" )
     {
     if (test.indexOf('isEmail')!=-1)
      {
      p=val.indexOf('@');
      if (p<1 || p==(val.length-1)) errors+='- '+nm+' doit contenir une adresse email valide.\n';
      }
     else if (test!='R')
      {
      num = parseFloat(val);
      if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
      if (test.indexOf('inRange') != -1)
       {
       p=test.indexOf(':');
       min=test.substring(8,p);
       max=test.substring(p+1);
       if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
       }
      }
     }
    else if (test.charAt(0) == 'R') errors += '- '+nm+' est requis.\n';
    }
   } if (errors) alert('Les erreurs suivantes doivent etre corrigées:\n'+errors);
   document.MM_returnValue = (errors == '');
  }
 }


Message édité par recep le 21-10-2009 à 09:07:50
mood
Publicité
Posté le 20-10-2009 à 17:11:06  profilanswer
 

n°1933925
recep
Posté le 20-10-2009 à 18:32:11  profilanswer
 

up ?

n°1933933
tpierron
Posté le 20-10-2009 à 19:23:59  profilanswer
 

Hmm, plutôt que :

Code :
  1. val=document.getElementById(args[i]);


Je mettrais ça à la place :

Code :
  1. val=document.formulaire[args[i]]


 

n°1933980
recep
Posté le 20-10-2009 à 21:34:43  profilanswer
 

tpierron a écrit :

Hmm, plutôt que :

Code :
  1. val=document.getElementById(args[i]);


Je mettrais ça à la place :

Code :
  1. val=document.formulaire[args[i]]


 


 
c'est pas ça qui va régler mon problème ?

n°1934004
tpierron
Posté le 20-10-2009 à 22:54:01  profilanswer
 

Bah, faire des getElementById sur des éléments qui n'ont pas d'ID, faut pas s'étonner si ça ne fonctionne que sur IE...

n°1934060
recep
Posté le 21-10-2009 à 09:05:21  profilanswer
 

tpierron a écrit :

Bah, faire des getElementById sur des éléments qui n'ont pas d'ID, faut pas s'étonner si ça ne fonctionne que sur IE...


Je te remercie beaucoup, maintenant ça fonctionne trés bien !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Problème:boite de dialogue alert() avec chrome+safari - [Résolu]

 

Sujets relatifs
[html] Problème sur un formulaire avec plusieurs boutons submit[ejb] petit probleme avec le context.lookup()
[php/mysql] lancer un programme php en cas d'updates de MySql [resolu]Problème de conception ?
aide java: programmation d'une boite a rythme[resolu] Formulaire avec upload qui renomme mon fichier
.css probleme compatibilité serveur - detecté via dreamweaver[Résolu] Fermeture inopiné application Delphi
Problème de virus sur ce site ? Merci[Résolu] Problème background
Plus de sujets relatifs à : Problème:boite de dialogue alert() avec chrome+safari - [Résolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR