Contrôle champs formulaire

Résolu
saiyajin3 Messages postés 31 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 24 juillet 2007 - 27 avril 2007 à 15:03
saiyajin3 Messages postés 31 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 24 juillet 2007 - 28 avril 2007 à 14:14
Bonjour,

J'ai une fonction javascript qui teste les champs d'un formulaire avant de l'envoyer.
- Ce que je veux c'est que si un champs du formulaire n'est pas renseigné, alors --> Alerte Javascript (Ca je sais faire) + Arrêt de l'envoi du formulaire!!!!
- Mais quand l'alerte s'ouvre et que je clique sur OK, la page continu son traitement et du coup, logiquement... ça plante.

Comment faire pour ARRETER le traitement quand un champs n'est pas renseigné?
J'ai mis des "return false" mais ca marche pas! J'ai aussi essayé des exit(1), exit(),.....

VOICI MON CODE

   if(nom.length == 0)
   {
       messageErreur += "Le champ 'nom' est obligatoire\n";
   }
   if(prenom.length == 0)
   {
       messageErreur += "Le champ 'prenom' est obligatoire\n";
  }
 
  if (messageErreur.length == 0) return true;

  alert(messageErreur);
  return false;

Merci    :'(

7 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
27 avril 2007 à 22:59
Salut,

Je pense que tu es sur une mauvaise direction.

Voila ce que je te propose :

<Form action="mapage.do" method="post">

"test1()">
</Form>

function test1(){
//Le test
if(toutestOk){
document.submit();
}else{
//rien le document n'est pas soumis
}}

De cette manière les fonctions fonctionne indépendamennts.
Car si tu rajoutes un champ,
dans ta manière de fonctionner il faut rajouter un argument dans tous les appels a ta fonction.
Et rajouter le traitement a ta fonction, pour le dernier controle.
Si tu as 10 controles a verifier tu auras 10 argument a ta fonction.

NB.

Tu peux de plus faire des fonctions plus génériques.
exemple
onBlur="testObligation(this)" //perte focus

function testObligation(objet)
{
if (objet.value.length ==0 ){alert("Ce champ est obligatoire"); objet.focus();

}
}

Bon javascript
3
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
27 avril 2007 à 15:16
Bonjour,

tu n'as pas du chercher bien longtemps ?
parce qu'avec le nombre de questions ( donc réponses ) ou
    d'exemples qui existent ne serait-ce qu'ici sur ce forum !

<script type="text/javascript">
    function fonction_controle()
    {
       ... controle des champs....
       s'il y a une erreur : return false;
       return true; sinon
    }
...
<form onsubmit="return(fonction_controle(...));"...>
...        ...

<hr />


Cordialement            Bul     [mon Site]     [M'écrire]



<hr />
0
saiyajin3 Messages postés 31 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 24 juillet 2007
27 avril 2007 à 15:42
Super, merci ^^

Alors voila ce que j'obtiens :

<form onsubmit="return(controle(testIdentite,testExperiencePro,testLoisirs));" name="Form_Individu" action="/Site/MaServlet">

J'ai pour le même formulaire 3 boutons différents qui demande à la servlet des actions différentes.
(--> D'où les 3 arguments de la fonction "controle", qui doivent prendre la valeur TRUE ou FALSE)

MAIS comment affecter la valeur TRUE à l'un de ces 3 arguments lorsque je clique sur l'un des 3 boutons correspondant?

(Ne vous moquez pas, je suis débutant et je planche dessus depuis ce matin )

 
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
27 avril 2007 à 15:57
>>Ne vous moquez pas,

    celui qui se gausserait ne serait probablement pas
          faire aussi bien que ce que vous faites

>>je suis débutant
    on l'est tous. certains pensent avoir dépasser
        ce stade et ont oublié leurs débuts. ils se leurrent.



>>J'ai pour le même formulaire 3 boutons différents

    ? ? ou ?

    bref... l'extrait nécessaire ( pas plus ! ) du formulaire serait
    le bienvenu, comme ce qu'il faut transmettre à la servlet.



<hr />



Cordialement        Bul     [mon Site]     [M'écrire]



<hr />
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
saiyajin3 Messages postés 31 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 24 juillet 2007
27 avril 2007 à 16:49
Désolé de l'abscence... J'étais en train d'accrocher la corde pour me pendre.

Bref, Mon système fonctionne ainsi :

- Mes boutons sont de type
- C'est au CLIC DU BOUTON que je lance mes tests JavaScript :
- Voici un exemple de bouton :

onClick="appelerMAServlet('Envoi du nom et prenom',false</gras>,true,false,false,false,false)">

- Le TRUE que j'ai mis en rouge indique que je veux tester seulement une partie X de mon formulaire.
- DONC : La fonction appelerMAServlet marche niquel parceque elle m'alerte bien si j'ai un champs non renseigné.
- MAIS elle n'arrete pas le traitement demandé, comme je l'aurai souhaité...
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
28 avril 2007 à 11:57
nervagault n'a pas tort...

tu n'as d'ailleurs pas tout à fait répondu à mes questions ( probablement mal posées )

le script qui reçoit le formulaire doit savoir l'action à faire

ch'tit exemple avec du php : test.php

<?php
    if ( isset($_POST['quoi1']) )
            {    echo "traitement si image 1";    }
    else    {    if ( isset($_POST['quoi2']) )
                        {    echo "traitement si image 2";    }
                else    {    if ( isset($_POST['quoi3']) )
                                    {    echo "traitement si image 3";    }
                            else    {    echo '1er appel';     }
                        }
            }
?>
<script type="text/javascript">
    function controle()
    {
        if ( document.frm.txt.value.length==0 )
                {   alert("c'est pas bon");
                    return false;   
                }
        else    {    return true; }
    }
</script>
<form   name="frm"
        action="test.php"
        onsubmit="return(controle());"
        method="post" >
    
    
    
    
</form>

pour l'exemple test.php se rappelle lui-même
"brut de fonderie" dans les tests php et ce qui
est transmis par le formulaire, pour être simple.
   

<hr size="2" width="100%" />


Cordialement            Bul     [mon Site]     [M'écrire]



<hr />
0
saiyajin3 Messages postés 31 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 24 juillet 2007
28 avril 2007 à 14:14
Merci a vous deux, nhervagault a eu une bonne idee...


Probleme resolu!
0
Rejoignez-nous