Stopper un formulaire

Stef23
Invité n'ayant pas de compte PHPfrance

13 févr. 2007, 17:32

Bonjour,

J'ai un javascript dans ma page qui vérifie le nombre de cases cochées.
Il se lance avec un On SUbmit dans la balise <FORM>.

J'essaye de faire en sorte que si un nombre max de cases sont cochées, le formulaire ne s'execute pas. je pensais qu'un return false stoppait tout, apparemment non...(je suis tout debutant en javascript).

<form OnSubmit="derniereCaseCochee();" .....>

Code : Tout sélectionner

<script> clicsPossibles = 5; cases = document.formulaire.elements["secteur[]"]; function derniereCaseCochee() { nbrCasesCochees = 0; for (i = 0; i < cases.length; i++) { if (cases[i].checked) { nbrCasesCochees++; } } if (nbrCasesCochees >= clicsPossibles) { window.alert('Vous avez coché plus de 5 cases pour les secteurs d\'activités !'); return false; } } </script>

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

13 févr. 2007, 18:37

Il faut plutôt faire
<form OnSubmit="javascript:return false;derniereCaseCochee();">

En fait, c'est le submit qui doit retourner false...sinon, ce que tu fais avec ta fonction équivaut à
<form OnSubmit="javascript:false;" .....>
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Stef23
Invité n'ayant pas de compte PHPfrance

14 févr. 2007, 10:59

Si j'applique ce code, si j'ai bien compris, le formulaire se valide uniquement si ma fonction est vraie.
Mais de ce fait, je perd le message d'erreur.

Ce que je cherche a faire, c'est que quand je clique sur le bouton valider, un message s'affiche si il y a plus de 5 cases sélectionnées et donc ne lance pas le formulaire ou alors si le nombre est inférieur à 5 cases, alors OK le formulaire peut soumettre.

Comment faire ? :roll:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

14 févr. 2007, 12:34

A priori, il suffit que le submit retourne le résultat de ta fonction qui elle retournera vrai ou faux en fonction du succès :)

Code : Tout sélectionner

<form OnSubmit="javascript:return derniereCaseCochee();">
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...