bonsoir,
Comment attribuer plusieurs actions à un seul événement, j’ai essayé sa et sa n’a rien donné :
merci.Code:onsubmit="return verification('num','dt','kmn','nbr'); return verif();"
Version imprimable
bonsoir,
Comment attribuer plusieurs actions à un seul événement, j’ai essayé sa et sa n’a rien donné :
merci.Code:onsubmit="return verification('num','dt','kmn','nbr'); return verif();"
Tu utilises 2 return dans ton évènement onsubmit, sauf que l'exécution s'arrête au premier return tout simplement...
Si tu veux que le résultat de tes 2 fonctions valident la soumission de ton formulaire, il faudrait faire :
A+Code:onsubmit="return verification('num','dt','kmn','nbr') && verif();"
les fonctions retournent vrai ou false ...
soit tu fais une focntion qui enchaine les autres fonctions et reoutnre un true ou false global
soit tu fais un or
Code:
1
2 onsubmit="return (verification('num','dt','kmn','nbr') || verif());"
merci d'avoir répondu,
j’essaierai vos deux réponses le soir et je vous répondrai.
merci
heu oui ... && pas or :oops:
besoin de vacances moi :aie:
Bonjour et désolé pour le retard,
Je ne sais pas pourquoi sa ne marche pas, j’ai fait exactement comme vous m’avez dit, voila je vous montre :
- la 1ere fonction java:
cette fonction est pour les champs obligatoires.Code:
1
2
3
4
5
6
7
8
9
10
11
12 function verification(champ,champ2,champ3,champ4,champ5,champ6,champ7,champ8) { if ((document.getElementById(champ).value == "") || (document.getElementById(champ2).value == "") || (document.getElementById(champ3).value == "") || (document.getElementById(champ4).value == "") || (document.getElementById(champ5).value == "") || (document.getElementById(champ6).value == "") || (document.getElementById(champ7).value == "") || (document.getElementById(champ8).value == "")) { alert("Veuillez remplir les champs obligatoires SVP"); return false; } return true; }
- 2eme fonction:
Et je les appelle avec ce formulaire:Code:
1
2
3
4
5
6
7
8
9
10
11 function verif() { var input1 = parseInt(document.getElementById('km').value); var input2 = parseInt(document.getElementById('kmn').value); if (input2 < input1) { alert('Le champ Nouveau kilometrage doit etre superieur au champ Ancien kilometrage.'); return false; } else return true; }
Donc j’ai utilisé la première proposition qui na pas fonctionné, et voila la deuxième qui n’a pas fonctionné aussi, je croix g pas su bien introduire vos réponses. Merci de votre aide.Code:
1
2
3
4
5
6
7
8
9
10
11 <form class="css" onsubmit="return (verification('num','dt','kmn','nbr') && verif());" action="demdot.php <? if ($_GET['action']=='modif') { echo "?action=modif&num=$_GET[num]"; } else if ($_GET['action']=='ajout') { echo "?action=ajout"; } ?>" method="post" >
Peux-tu être plus explicite par rapport à ton pb ? Que se passe t-il exactement ? Y a t-il une erreur qui est remontée ?
Je me méfie toujours des || à rallonge
Code:
1
2
3
4
5
6
7
8
9
10 function verification(champ,champ2,champ3,champ4,champ5,champ6,champ7,champ8) { var flag=true flag=(document.getElementById(champ).value == "") && flag flag=(document.getElementById(champ2).value == "") && flag flag=(document.getElementById(champ3).value == "") && flag flag=(document.getElementById(champ4).value == "") && flag flag=(document.getElementById(champ5).value == "") && flag flag=(document.getElementById(champ6).value == "") && flag flag=(document.getElementById(champ7).value == "") && flag flag=(document.getElementById(champ8).value == "") && flag if (!flag){ alert("Veuillez remplir les champs obligatoires SVP"); } return flag; }
Je vais essayer d’être plus claire.
J'ai deux fonctions qui fassent un contrôle avant de soumettre les données quand j’ai fait sa
le contrôle ne s'effectue pas, par contre si je fait saCode:onsubmit="return (verification('num','dt','kmn','nbr') && verif());"
ou saCode:onsubmit="return verification('num','dt','kmn','nbr');"
le contrôle s'effectue normalement, mais moi ce que je veux faire c'est attribuer ces deux action dans un seul événement.merciCode:onsubmit="return verif();"
Si les 2 fonctions de vérifications fonctionnement correctement de façon individuelle. Ce serait étonnant que javascript ne soit pas capable d'effectuer une opération booléenne "&&".
Essaie de faire des alert sur le onsubmit :
A+Code:
1
2 onsubmit="alert('verification = '+verification('num','dt','kmn','nbr')+'\nverif = '+verif()+'\nles deux ensembles = '+(verification('num','dt','kmn','nbr') && verif()));"
même chose, le contrôle ne s'effectue pas et y’a aucune alerte qui s’affiche.:cry:
S'il n'y aucune alerte, c'est qu'une fonction pose problème.
Découpons l'alerte donc :
En fonction des alertes, tu sauras quelle fonction pose pbCode:onsubmit="alert('verification = '+verification('num','dt','kmn','nbr'));alert('verif = '+verif());alert('les deux ensembles = '+(verification('num','dt','kmn','nbr') && verif()));"
Pas besoin de chercher bien loin
etCode:onsubmit="return (verification('num','dt','kmn','nbr')
:roll:Code:function verification(champ,champ2,champ3,champ4,champ5,champ6,champ7,champ8)
même chose, ni d'alerte ni de contrôle.
Bovino, j'ai pas compris ce que vous voulez dire.
Effectivement, Bovino a raison par rapport au pb, ta fonction verification attend 7 paramètres, et tu ne l'appelles qu'avec 4... En soit, javascript est capable d'effectuer l'opération, les paramètres manquant seront null... Par contre, dans le corps de ta fonction tu testes chaque paramètre, et c'est là qu'une erreur intervient...
soulève une erreur de type "NullPointerException"...Code:document.getElementById(null).value
Donc, tu peux éventuellement modifier ton appel de fonction pour inclure 7 paramètres cohérents, mais surtout dans le corps de ta fonction verification faire des tests sur l'existence des éléments dont tu vérifies la valeur...
A+
excellent excellent :yaisse2: :ccool:sa marche
C’était sa le problème, dans la fonction g déclaré 8 paramètres et j’ai fait appelle j’uste a 4 paramètres.
Don ce que j’ai fait, dans la fonction j’ai laissé que 4 paramètres et sa a marché.
Mais y’a un truc, c’est que cette fonction s’applique sur plusieurs formulaires et je doit laisser les 8 paramètres, ce qui fait y’a des formulaires qui contiennent 8 champs, et d’autres 2 champs…. Donc comme vous m’avez dit , comment je doit formuler ma fonction pour qu’elle vérifie d’abord l’existence d’un champ ?
Je vous remercie encore de votre aide.
Voici un exemple
dont je m'inspire
lorsque j'ai un nombre variable de paramètres
pour une fonction :
A remarquer : la propriété arguments de l'objet ajouter (la fonction) ; c'est un tableau qui contient les arguments réellement passés.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <script type="text/javascript"> function ajouter() { var nb = ajouter.arguments; var somme = 0; for(var i=0; i<nb.length; i++) { somme += nb[i]; } return somme; }; alert("addition(1,2) : "+ajouter(1,2)); alert("addition(1,2,3,4) : "+ajouter(1,2,3,4)); </script>
Fred
merci fred, je vais essayer d’adapter votre source à ce que je veux faire. Pour l’instant je v marquer cette discussion comme résolu, parce que vous avez répondu a toutes mes question, si j’aurai des problèmes a utiliser votre source je vous dérangerai encore. Merci tous de votre aide