cyrilherve
Messages postés324Date d'inscriptiondimanche 12 août 2007StatutMembreDernière intervention26 août 2011
-
23 avril 2009 à 12:23
@karamel
Messages postés1850Date d'inscriptionvendredi 9 mai 2008StatutModérateurDernière intervention 4 mars 2024
-
23 avril 2009 à 19:36
bonjour a tous ,,
j'ai un formulaire que je veux controler avec javascript, je veux dans un premier temps m'assurer que tout les champs sont remplis, si c'est le cas le formulaire est soumis sinon , une boite de dialogue s'affiche en precisant tout les champs qui n'ont pas etes remplis.
voici mon script :
<script language="javascript">
// fontion de controle du formulaire
function controle()
{
message= new array(); // tableau pour garder les messages
var rep =0; // variable pour tester si oui ou non tout les champs du formulaire sont remplis
var i=0; // compteur
for (i=0; i<12; i++) // boucle pour initialiser le tableau
{
message[i]='';
}
// recuperation du contenu des champs du formulaire et stockage dans des variables
var a=document.expedition.nombord.value;
var b=document.expedition.provenance.value;
var c=document.expedition.destination.value;
var d=document.expedition.nomexp.value;
var e=document.expedition.prenomexp.value;
var f=document.expedition.villexp.value;
var g=document.expedition.ruexp.value;
var h=document.expedition.telephonexp.value;
var i=document.expedition.nomdes.value;
var j=document.expedition.prenomdes.value;
var k=document.expedition.villedes.value;
var l=document.expedition.ruedes.value;
var m=document.expedition.telephonedes.value;
// test si les champs sont remplis ou pas et ajoute un messages d'erreurs dans le tableau
if (a=="")
{
message[0]=" Entrez un numero de bordereau! /n ";
}
if (b=="")
{
message[1]=" vous devez preciser la provenance du colis ";
}
if (c=="")
{
message[2]=" vous devez preciser la destination du colis ";
}
if (d=="")
{
message[3]=" vous devez preciser le nom de l'expediteur ";
}
if (e=="")
{
message[4]=" vous devez preciser le prenom de l'expediteur ";
}
if (f=="")
{
message[5]=" vous devez preciser la ville de l'expediteur ";
}
if (g=="")
{
message[6]=" vous devez preciser la rue de l'expediteur ";
}
if (h=="")
{
message[7]=" vous devez preciser le numero telephone de l'expediteur ";
}
if (i=="")
{
message[8]=" vous devez preciser le destinataire ! ";
}
if (j=="")
{
message[9]=" vous devez preciser le prenom du destinataire ";
}
if (k=="")
{
message[10]=" vous devez preciser la ville du destinataire ";
}
if (l=="")
{
message[11]=" vous devez preciser la rue du destinataire ";
}
if (m=="")
{
message[12]=" vous devez preciser le numero de telephone du destinataire ";
}
// verifie si tout les champs sont remplis ou pas avec la variable rep
for (i=0; i<12; i++)
{
{
if(message[i]!='')
rep=1;
}
}
// test la valeur de rep
if (rep=0)
{
for (i=0; i<12; i++)
{
alert("message[i]");// affiche une boite de dialogue avec les msg d'erreurs correspondant si rep != de 0
}
}
else
{
document.expedition.submit();// soumet le formulaire si tout les champs sont remplis
}
}
</script>
seulmnt quand je valide mon formulaire ,,,rien ne se passe . comment est que je peux arranger ça svp ?
merci pour vos reponse.
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 23 avril 2009 à 12:39
Bonjour,
1° et le html ? faut qu'on l'invente ?
2° tu n'as pas d'erreurs de syntaxe ? voir (**)
3° il vaut mieux respecter le traitement standard, à savoir :
<form action..... onsubmit="return(controle());"... >
tes champs
</form>
et dans controle, pas de formulaire.submit() !
return false s'ils y a des erreurs, return true sinon
pourquoi cet array,, ces variables intermédiaiares et tout le toutim ?
controle du style :
var lib="";
if ( document.expedition.nombord.value=="" )
lib+=" Entrez un numero de bordereau! \r\n";
if ( document.expedition.provenance.value=="" )
lib+="vous devez preciser la provenance du colis\r\n";
.....
if ( lib.length>0 )
{ alert(lib);
return false;
}
else { return true; }
Internet
Explorer, activer le deboggage : Outils/options Internet/Avancés
dans la liste, sous "Navigation" : décocher
o Afficher une notification de chaque erreur de script
o Désactiver le débogage de Scripts (Internet Explorer)
et mieux (pour IE < 8) : télécharger le Debogger IE
voir aussi : DebugBar et Companion JS, ----
K-Meleon, utils / Cons, ----
Opera, utils / Asole d'erreurs, ----
Safari, Debug / Show JavaScript Console
° modifier Fichier com.apple.Safari.plist situé dans le
répertoire : Support:\Documents and Settings\utilisateur
\Application Data\Apple Computer\Safari\Preferences\
y ajouter <key>IncludeDebugMenu</key>
----
@karamel
Messages postés1850Date d'inscriptionvendredi 9 mai 2008StatutModérateurDernière intervention 4 mars 2024152 23 avril 2009 à 14:02
bonjour
et aussi si j'ai bien compris si il y a juste une erreur on se coltine les douzes messages a ta plase je ferait une variable globale dans laquel tu additionnerait chaque messages ou il y a erreur et que tu afficherait a la fin la variable commencerait par vous avez oublier de
cyrilherve
Messages postés324Date d'inscriptiondimanche 12 août 2007StatutMembreDernière intervention26 août 2011 23 avril 2009 à 17:14
j'ai refais mon script finalement de facon simple
<script language="javascript">
function controle()
{
var a=document.expedition.nombord.value;
var b=document.expedition.provenance.value;
var c=document.expedition.destination.value;
var d=document.expedition.nomexp.value;
var e=document.expedition.prenomexp.value;
var f=document.expedition.villexp.value;
var g=document.expedition.ruexp.value;
var h=document.expedition.telephonexp.value;
var i=document.expedition.nomdes.value;
var j=document.expedition.prenomdes.value;
var k=document.expedition.villedes.value;
var l=document.expedition.ruedes.value;
var m=document.expedition.telephonedes.value;
if (a=="")
{
alert(" Entrez un numero de bordereau! ");
document.expedition.num_bo.focus();
}
else
if (b=="")
{
alert(" vous preciser la provenance du colis ");
document.expedition.provenance.focus();
}
else
if (c=="")
{
alert(" vous devez preciser la destination du colis");
document.expedition.destination.focus();
}
else
if (d=="")
{
alert(" vous devez preciser le nom de l'expediteur");
document.expedition.nomexp.focus();
}
else
if (e=="")
{
alert(" vous devez preciser le prenom de l'expediteur ");
document.expedition.prenomexp.focus();
}
else
if (f=="")
{
alert(" vous devez preciser la ville de l'expediteur ");
document.expedition.villexp.focus();
}
else
if (g=="")
{
alert(" vous devez preciser la rue de l'expediteur ");
document.expedition.ruexp.focus();
}
else
if (h=="")
{
alert(" vous devez preciser le telephone de l'expediteur ");
document.expedition.num_bo.focus();
}
else
if (isNaN(h))
alert (" le numero de telephone doit etre entierement numerique ");
else
if (i=="")
{
alert(" vous devez preciser le destinataire ");
document.expedition.nomdes.focus();
}
else
if (j=="")
{
alert(" vous devez preciser le prenom du destinataire ");
document.expedition.prenomdes.focus();
}
else
if (k=="")
{
alert(" vous devez preciser la ville du destinataire ");
document.expedition.villedes.focus();
}
else
if (l=="")
{
alert(" vous devez preciser une rue pour le destinataire ");
document.expedition.ruedes.focus();
}
else
if (m=="")
{
alert(" vous devez preciser le telephone du destinataire ");
document.expedition.telephonedes.focus();
}
else
if (isNaN(m))
alert (" le numero de telephone doit etre entierement numerique ");
else
document.expedition.submit();
}
</script>
et la marche simplement .
merci pr vos reponse