fonction de vérification de champs d'un formulaire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : fonction de vérification de champs d'un formulaire

par Sékiltoyai » 19 juil. 2007, 13:32

Bien entendu, une vérification en javascript ne te dispense aucunement d'une vérification en php...

par béka » 19 juil. 2007, 10:36

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

par Genova » 19 juil. 2007, 10:30

Chez moi (sous Firefox), la fonction est bien appelée. Essaie de vider ton cache.

par béka » 19 juil. 2007, 10:27

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>

par Genova » 19 juil. 2007, 10:25

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 ?

par béka » 19 juil. 2007, 10:24

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 ?

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

par d0m » 19 juil. 2007, 10:23

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.

par Genova » 19 juil. 2007, 10:16

Vérifie déjà que verif() est correctement appellée en mettant un alert('toto') au début de ta fonction.

fonction de vérification de champs d'un formulaire

par béka » 19 juil. 2007, 10:14

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>