Pb avec une fonction de controle de formulaire

Résolu
lolymeupy Messages postés 33 Date d'inscription jeudi 19 avril 2007 Statut Membre Dernière intervention 6 janvier 2009 - 8 mars 2008 à 12:22
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 - 8 mars 2008 à 16:05
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

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
8 mars 2008 à 13:53
>>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]
3
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
8 mars 2008 à 12:28
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]
0
lolymeupy Messages postés 33 Date d'inscription jeudi 19 avril 2007 Statut Membre Dernière intervention 6 janvier 2009
8 mars 2008 à 12:45
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...
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
8 mars 2008 à 13:03
>>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]
0

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

Posez votre question
lolymeupy Messages postés 33 Date d'inscription jeudi 19 avril 2007 Statut Membre Dernière intervention 6 janvier 2009
8 mars 2008 à 13:31
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...
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
8 mars 2008 à 14:20
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 !!!
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
8 mars 2008 à 15:01
>>Je vois que j'arrive trop tard
    il n'est jamais trottoir pour bien faire, Nicomilville
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
8 mars 2008 à 15:47
Ok merci bultez, toujours aussi encouragent pas comme certaine personne qui me prennent de haut ...

Si t'a besoin d'aide, MP !!!
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
8 mars 2008 à 16:01
>>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]
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
8 mars 2008 à 16:05
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 !!!
0
Rejoignez-nous