Pb avec une fonction de controle de formulaire [Résolu]

Signaler
Messages postés
33
Date d'inscription
jeudi 19 avril 2007
Statut
Membre
Dernière intervention
6 janvier 2009
-
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
-
Bonjour,
j'ai un pb dans une fonction de controle d'un formulaire...
Voici le bout de code du formulaire:

<label id="lbl_msg_date_debut" style="display:none" class="lbl_msg">*
champ obligatoire</label>


Voici la partie de la fonction concernée:

function valider_formulaire(thisForm)
{
var retour=0;

if(thisForm.date_debut_evt.value == '')
{
thisForm.lbl_msg_date_debut.style.display = "inline";
thisForm.tarif_evt.focus();
retour=retour+1;
}
...
...
if(retour>0)
{
return false;
}
else
{
return true;
}
}


En gros, si le champ date_debut_evt n'est pas rempli, je veux afficher
mon label d'erreur qui est lbl_msg_date_debut, ensuite je place le
focus sur le champ à remplir, et j'incremente ma variable d'erreur....

Ca marche bien si j'enlève la ligne suivante:

thisForm.lbl_msg_date_debut.style.display = "inline";


mais dès que je décommente cette ligne et bien que mon champ obligatoi-
re ne soit pas rempli, il valide quand même mon formulaire et passe au
script appelé dans le action="..."
Donc si qq'un a une idée du pourquoi cette ligne plante, n'hésitez pas
parce que je suis paumé là...

10 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
34
>>parce que là, je voyais pas du tout
    moi non plus !
    merci de m'avoir appris qu'un label n'avait pas de name   !
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
34
Bonjour,

    primo... faudrait voir le formulaire...   enfin... l'EXTRAIT nécessaire
       cette fonction est bien appelée dans le onsubmit de la balise form ?
      
    peut être aussi....
       document.thisForm.lbl_msg_date_debut.style.display = "inline";

       et <label id="lbl_msg_date_debut" name="lbl_msg_date_debut"    ...
       mais ça dépend de l'appel.. justement.

       ou alors ce label n'est pas dans thisform ?

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
33
Date d'inscription
jeudi 19 avril 2007
Statut
Membre
Dernière intervention
6 janvier 2009

voici ce que j'ai dans form :

<form enctype="multipart/form-data" action="script_enreg_evt.php"
method="post" onsubmit="return valider_formulaire(this)">

donc j'appelle bien la bonne methode js

et pour ce qui est du champ name dans le label, il n'existe pas dans
les choix offerts....J'ai essayé en rajoutant :
title="lbl_msg_date_debut"
dans ma balise label, mais ça ne change rien...

et la fonction est bien appellée car si j'enlève la ligne :
thisForm.lbl_msg_date_debut.style.display = "inline";

de ma fonction, et que mon champ est vide, il ne valide pas mon
formulaire et le focus marche bien....
Donc le problème vient vraiment de cette ligne...
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
34
>>ce qui est du champ name dans le label, il n'existe pas
    on ne peut donc pas l'adresser par     thisFrom.name_de_l'élément !

    mais en usant de document.getElementById("id_de_lelement")

<script type="text/javascript">
function valider_formulaire(thisForm)
{
var retour=0;
   
    if(    thisForm.date_debut_evt.value == '')
    {   document.getElementById("lbl_msg_date_debut").style.display = "inline";
         //thisForm.tarif_evt.focus();
         retour=retour+1;
    }
if(retour>0)
    {
     return false;
    }
    else
    {
return true;     
    }
}

</script>

<form action="javascript:alert('ok');"
        method="post" onsubmit="return valider_formulaire(this)">
    <label id="lbl_msg_date_debut"

            style="display:none">champ obligatoire</label>
   
   
</form>

   

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
33
Date d'inscription
jeudi 19 avril 2007
Statut
Membre
Dernière intervention
6 janvier 2009

Merci infiniment Bultez!
Ca marche nickel avec :

document.getElementById("lbl_msg_date_debut").style.display =
"inline";

Muchas gracias parce que là, je voyais pas du tout...
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
33
Salut,

Je vois que j'arrive trop tard alors tout ce que j'ai a te conseiller c'est de mettre la réponse de bultez en réponse accepté ...

Si t'a besoin d'aide, MP !!!
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
34
>>Je vois que j'arrive trop tard
    il n'est jamais trottoir pour bien faire, Nicomilville
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
33
Ok merci bultez, toujours aussi encouragent pas comme certaine personne qui me prennent de haut ...

Si t'a besoin d'aide, MP !!!
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
34
>>certaine personne qui me prennent de haut
    des noms ! des noms !!!    non, je rigole :  oublie les.  
    tu n'es pas le seul à être confrontés à quelques ?¤µ$,
    heureusement très rares sur CodesSources,  mais indécrotables...
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
33
bon ba il ne me reste plus qu'a te dire : bonne fin d'après midi et peut être a++ sur un autre sujet ....

Si t'a besoin d'aide, MP !!!