recep | 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
|