Contrôle champs formulaire [Résolu]

Signaler
Messages postés
31
Date d'inscription
mercredi 13 avril 2005
Statut
Membre
Dernière intervention
24 juillet 2007
-
Messages postés
31
Date d'inscription
mercredi 13 avril 2005
Statut
Membre
Dernière intervention
24 juillet 2007
-
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

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
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
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
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 />
Messages postés
31
Date d'inscription
mercredi 13 avril 2005
Statut
Membre
Dernière intervention
24 juillet 2007

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 )

 
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
>>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 />
Messages postés
31
Date d'inscription
mercredi 13 avril 2005
Statut
Membre
Dernière intervention
24 juillet 2007

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é...
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
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 />
Messages postés
31
Date d'inscription
mercredi 13 avril 2005
Statut
Membre
Dernière intervention
24 juillet 2007

Merci a vous deux, nhervagault a eu une bonne idee...


Probleme resolu!