Verification 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 : Verification d'un formulaire

par zeus » 27 oct. 2005, 11:07

=> bouton Résolu
Modération : comme dgse est un invité, il ne peut pas le faire, mais je le fait pour toi ;)

par daoud » 27 oct. 2005, 11:05

Oui c'est sûr, avec
<form action="page_xyz.php" method="post" onsubmit="validation(); return false;">
cela retourne toujours false, et dans ce cas cela n'envoie jamais ton formulaire...

=> bouton Résolu

RESOLU

par Dgse » 26 oct. 2005, 19:41

Bonjour

en faite tout venais du formulaire par lui meme , j'ai mis ceci et tout fonctionne tres bien
<form action="send.php" method="post" onsubmit="return validation(); "> 
<input type="text" name="mail" size="15" maxlength="40" > 
<input type="text" name="Nom" size="15" maxlength="40" > 
<input type="submit" name="envois" value="Envoyer"> 
Merci a Vous tous

@+ Dgse

par Dgse » 26 oct. 2005, 17:06

Bonjour

J'ai mis le ; derriere true (Oupps un oublis de ma part), mais cela ne m'envois rien , si je retire le return false de onsubmit.

Ca me l'envois bien mais meme si le champ est vide... ce n'est pas reelement ce que je veut ...

Merci encore

Dgse

par Truc » 26 oct. 2005, 16:57

il manque un ";" apres return true ....
Mais tu peut en plus réorganiser un peu le code
function validation()
{
         
        var email = document.formulaire.mail.value;
        if (email.search(/^[_a-z0-9-]+(.[_a-z0-9-]+)*[^._-]@[a-z0-9-]+(.[a-z0-9]{2,4})*$/) == -1)
        {
            alert ('entrez une adresse Email valide');
            document.formulaire.mail.focus();
            return false;
        }
        else  if(document.formulaire.Nom.value == "")
        {
             alert ('veuillez entrer votre Nom');
             document.formulaire.Nom.focus();
             return false;
        }        
        else 
        {
             return true;
         }
} 

Encore un petit probleme

par Dgse » 26 oct. 2005, 16:48

Bonjour

J'ai modifie le script de cette facon (grace a vous), les conditions fonctionne et quand tout est remplis et que je valide il n'envois rien , ai je oublie quelques chose
<script language="javascript" type="text/javascript"> 
function validation() 
{ 
	 	
        var email = document.formulaire.mail.value; 
        if (email.search(/^[_a-z0-9-]+(.[_a-z0-9-]+)*[^._-]@[a-z0-9-]+(.[a-z0-9]{2,4})*$/) == -1) 
        { 
            alert ('entrez une adresse Email valide'); 
            document.formulaire.mail.focus(); 
            return false; 
        } 
       	if(document.formulaire.Nom.value == "") 
		{ 
        alert ('veuillez entrer votre Nom'); 
        document.formulaire.Nom.focus(); 
        return false; 
    	}
		
else {return true}
}
</script> 

<form action="send.php" method="post" onsubmit="validation(); return false;"> 
<input type="text" name="mail" size="15" maxlength="40" > 
<input type="text" name="Nom" size="15" maxlength="40" > 
<input type="submit" name="envois" value="Envoyer"> 
Merci a tous

Dgse

PS : Pas besoin d'ecrire en minuscule j'en suis pas ;o)

par Cyrano » 25 oct. 2005, 16:34

Ça vient probablement (mais pas certain) des parenthèses autour de false dans return (false)
Proposition plus simple:
<script language="javascript" type="text/javascript">
function validation()
{

    if(document.formulaire.mail.value != "")
    {
        var email = document.formulaire.mail.value;
        if (email.search(/^[_a-z0-9-]+(\.[_a-z0-9-]+)*[^\._-]@[a-z0-9-]+(\.[a-z0-9]{2,4})*$/) == -1)
        {
            alert ('entrezune adresse Email valide');
            document.formulaire.mail.focus();
            return false;
        }
        else
        {
            return true;
        }
    }
    else
    {
        alert ('entrezune adresse Email');
        document.formulaire.mail.focus();
        return false;
    }

    if(document.formulaire.Nom.value == "") {
        alert ('veuillez entrer votre Nom');
        document.formulaire.Nom.focus();
        return(false);
    }
}
</script>
En JavaScript aussi on peut utiliser des expressions régulières ;)

Ensuite, dans ton formulaire, là où tu fais appel à ton JavaScript de validation, par exemple onsubmit="" etc, formule en rajoutant ceci
<form action="page_xyz.php" method="post" onsubmit="validation(); return false;">

Re: Verification d'un formulaire

par albat » 25 oct. 2005, 16:25

Très certainement.

Il n'en demeure pas moins que ce test me paraît curieux, et même contradictoire.

Si document.formulaire.mail.value est vide,
il est inutile d'attribuer cette "non-valeur" à la variable email
tout comme il est inutile d'effectuer des tests sur cette même valeur, non ? ;)
if (document.formulaire.mail.value == "")
   { var email=document.formulaire.mail.value; 

par mere-teresa » 25 oct. 2005, 16:05

daoud a raison : il faut mettre le mot clef return. Notamment, teste si l'utilisateur appuie sur Entrée au clavier, au lieu de cliquer.

[+ d'infos]
http://www.openweb.eu.org/articles/vali ... ormulaire/

par daoud » 25 oct. 2005, 14:54

Salut,

Je crois qu'il faut mettre
<form name="formulaire" method="post" onSubmit="return validation()"> 
(ajout de return)

a+

par albat » 25 oct. 2005, 14:15

N'as-tu pas fait une faute de sens dans ton test ?
Moi, je corrigerais ainsi :
function validation()
{ if (document.formulaire.mail.value != "")

par albat » 25 oct. 2005, 14:01

Merci d'utiliser la balise
 pour encadrer ton code dans tes messages.

[size=59]Comme ton pseudo semble nindiquer que tu as le bras long, je vais le faire pour toi...[/size] :lol:

Verification d'un formulaire

par Dgse » 25 oct. 2005, 13:38

Bonjour

Un petit soucis lors d'une verification d'un formulaire.. voici le script
<script language="javascript" type="text/javascript">
function validation()
{

if(document.formulaire.mail.value == "") 
{
var email=document.formulaire.mail.value;
if ( ( email.indexOf("@") == -1 ) || ( email.indexOf("@") == 0 ) || ( email.indexOf("@") != email.lastIndexOf("@") ) || ( email.indexOf(".") == email.indexOf("@")-1 ) || ( email.indexOf(".") == email.indexOf("@") +1 ) || ( email.indexOf("@") == email.length -1 ) || ( email.indexOf (".") == -1 ) || ( email.lastIndexOf (".") == email.length -1 ) )
{
alert ('entrezune adresse Email valide');
document.formulaire.mail.focus();
return(false);
}
}

if(document.formulaire.Nom.value == "") {
alert ('veuillez entrer votre Nom');
document.formulaire.Nom.focus();
return(false);
} 
}
</script> 

<form name="formulaire" method="post" onSubmit="validation()">
<input type="text" name="mail" size="15" maxlength="40" >
<input type="text" name="Nom" size="15" maxlength="40" >
<input type="submit" name="envois" value="Envoyer">
Mon probleme est que les alert fonctionne bien mais il m'envois quand meme le formulaire apres avoir clicquer sur Ok de la fenetre d'alerte..

Si vous avez une solution je suis preneur

Merci

@+ Dgse