Page 1 sur 1

fonction de vérification de champs d'un formulaire

Posté : 19 juil. 2007, 10:14
par béka
Bonjour tout le monde, voilà, j'ai fait une petite fonction qui permet de vérifier que certains champs d'un formulaire on bien été saisi.
Seulement voilà, je n'ai pas de message d'alerte. Pouvez me dire pourquoi car ce code me semble bon et correct.

Code : Tout sélectionner

<script language="JavaScript"> <!-- function Verif() { var msg = ""; // Champ 1 saisi ? if (document.form.used.value.length <= 0) { msg += "\n - le champ 1"; } // Champ 2 saisi ? if (document.form.mark.value.length <= 0) { msg += "\n - le champ 2"; } // Si un problème => message d'erreur if (msg != ""){ msg += alert("Il faut renseigner : " + msg); return false; } else { // tout est bien rempli return true; } } // --> </script> <form name="form" method="post" action="comment.php" id="form" onSubmit="return Verif();"> <input type="hidden" name="form" value="give-opinion" /> <ul class="catalog"> <li> <label class="form-section"><?php echo INFORMATION_ABOUT_USING; ?></label> </li> <li class="left"> <input type="radio" name="used" id="usedY" value="Y">Yes&nbsp;&nbsp; <input type="radio" name="used" id="usedN" value="N">No </li> <li style="padding-top: 5px;"> <label class="form-section"><?php echo NOTATION; ?></label> </li> <li> <label><?php echo GIVE_MARK; ?></label> <input type="radio" name="mark" value="1">1&nbsp;&nbsp; <input type="radio" name="mark" value="2">2&nbsp;&nbsp; <input type="radio" name="mark" value="3">3&nbsp;&nbsp; <input type="radio" name="mark" value="4">4&nbsp;&nbsp; <input type="radio" name="mark" value="5">5&nbsp;&nbsp; </li> </form>

Posté : 19 juil. 2007, 10:16
par Genova
Vérifie déjà que verif() est correctement appellée en mettant un alert('toto') au début de ta fonction.

Re: fonction de vérification de champs d'un formulaire

Posté : 19 juil. 2007, 10:23
par d0m
je ne comprends pas bien ta vérification sur les boutons radio :

Code : Tout sélectionner

if (document.form.used.value.length <= 0) if (document.form.mark.value.length <= 0)
normalement le bouton a une position par defaut, il aura donc toujours une valeur.
Y ou N dont la taille sera toujours > 0 nan ?
Je ne vois pas quand attendrais tu un message d'alerte.

Posté : 19 juil. 2007, 10:24
par béka
non effectivement, elle n'a pas l'air d'etre appellé puisque rien ne s'est affiché et que alert('toto') a été ignoré. Pourquoi alors ? je ne vois pas où est mon erreur.

a dom-> si aucun bouton n'est checké, alors ce sera vide non ?

Posté : 19 juil. 2007, 10:25
par Genova
Si on avait plus de code sous les yeux on pourrait t'aider, mais je vois pas comment on peut savoir pourquoi ta fonction n'est pas appelée sans le code censé appelé la fonction la fonction.

Elle est appelée via un évènement (onsubmit ?), tu poster le HTML ici ?

Posté : 19 juil. 2007, 10:27
par béka
voila tout le code :

Code : Tout sélectionner

?> <script language="JavaScript"> <!-- function Verif() { alert('toto'); var msg = ""; // Champ 1 saisi ? if (document.form.used.value.length <= 0) { msg += "\n - le champ 1"; } // Champ 2 saisi ? if (document.form.mark.value.length <= 0) { msg += "\n - le champ 2"; } // Si un problème => message d'erreur if (msg != ""){ msg += alert("Il faut renseigner : " + msg); return false; } else { // tout est bien rempli return true; } } // --> </script> <form name="form" method="post" action="comment-practice.php" id="form" onSubmit="return Verif();"> <input type="hidden" name="form" value="give-opinion" /> <ul class="catalog"> <li> <label class="form-section"><?php echo INFORMATION_ABOUT_USING; ?></label> </li> <li class="left"> <input type="radio" name="used" id="usedY" value="Y">Yes&nbsp;&nbsp; <input type="radio" name="used" id="usedN" value="N">No </li> <li style="padding-top: 5px;"> <label class="form-section"><?php echo NOTATION; ?></label> </li> <li> <label><?php echo GIVE_MARK; ?></label> <input type="radio" name="mark" value="1">1&nbsp;&nbsp; <input type="radio" name="mark" value="2">2&nbsp;&nbsp; <input type="radio" name="mark" value="3">3&nbsp;&nbsp; <input type="radio" name="mark" value="4">4&nbsp;&nbsp; <input type="radio" name="mark" value="5">5&nbsp;&nbsp; </li> <li style="padding-top: 5px;"> <label class="form-section"><?php echo INFORMATIONS_PRACTICE; ?></label> </li> <li> <label><? echo COMMENT; ?></label> <textarea name="comment" class="editor text" onChange="setModified();"></textarea> </li> <li style="padding-top: 5px;"> <label class="form-section"><? echo REUSABLE; ?></label> </li> <li> <label><?php echo TEXT_REUSABLE; ?></label> <textarea name="reusable" class="text-2lines editor" onChange="setModified();"></textarea> </li> </ul> <div class="btns"> <input type="submit" value="<?php echo SAVE; ?>" class="submit"/> <input type="reset" value="Reset"/> <input type="button" value="<?php echo CLOSE; ?>" onclick="formClose()" /> </div> </form>

Posté : 19 juil. 2007, 10:30
par Genova
Chez moi (sous Firefox), la fonction est bien appelée. Essaie de vider ton cache.

Posté : 19 juil. 2007, 10:36
par béka
j'utilise aussi firefox et avec firebug j'ai remarqué qu'il me mettait que verif n'était pas défnie.

Dom tu as raison, j'ai modifier ma fonction pour des boutons radio, voilà le nouveau code de cette fonction :

Code : Tout sélectionner

<script language="JavaScript"> <!-- function Verif() { alert('toto'); var msg = ""; // Champ 1 saisi ? if ( (document.form.used[0].checked == 0) && (document.form.used[1].checked == 0) ){ msg += "\n - le champ 1"; } // Champ 2 saisi ? if ( (document.form.mark[0].checked == 0) && (document.form.mark[1].checked == 0)) && (document.form.mark[2].checked == 0)) && (document.form.mark[3].checked == 0)) && (document.form.mark[4].checked == 0) ){ msg += "\n - le champ 2"; } // Si un problème => message d'erreur if (msg != ""){ msg += alert("Il faut renseigner : " + msg); return false; } else { // tout est bien rempli return true; } } // --> </script>

EDIT : c'est bon maintenant, j'ai fait une erreur de débutant :oops: je n'avais pas mis la fonction entre les balises <head> et </head>, j'avais oublié. lol

Posté : 19 juil. 2007, 13:32
par Sékiltoyai
Bien entendu, une vérification en javascript ne te dispense aucunement d'une vérification en php...