Probleme dans une fonction de verification sous condition if / else if

Résolu
djmath56 Messages postés 5 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 17 février 2008 - 16 févr. 2008 à 17:34
djmath56 Messages postés 5 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 17 février 2008 - 17 févr. 2008 à 14:50
bonjour,

J'ai un problème dans une fonction qui met sert à vérifier les champs d'un formulaire !

J'ai reperer l'endroit où sa coince mais je ne vois pas ce qui ne va pas !

function check()

{

    if(document.form1.nomp.value.length == '')

        {

            alert('message1');

            return false;

        }

    else if(document.form1.urls.value.length == '')

        {

            alert('message2');

            return false;

        }

    else if(document.form1.equipe.value.length == '')

        {

            alert('message3');

            return false;

        }

    else if(document.form1.matos.value.length == '')

        {

            alert('message4');

            return false;

        }

    else if(document.form1.statut.selectedIndex >= 1)

        {

            if(document.form1.photob.checked == true)

                {

                if(document.form1.photourl.value.length == '')

                    {

                        alert('message5');

                        return false;

                    }

                }

        }

    else if(document.form1.statut.selectedIndex >= 2) //Le problème est ici, la condition d'avant marche bien mais celle la ne veut pas s'exécuter semblablement a la precedente !

        {

            if(document.form1.makingb.checked == true)

                {

                if(document.form1.makingurl.value.length == '')

                    {

                        alert('message6');

                        return false;

                    }

                }

        }

    else if(document.form1.statut.selectedIndex >= 3)

        {

            if(document.form1.titrev.value.lenght == '')

                {

                    alert('message7');

                    return false;

                }

            else if(document.form1.urlv.value.length == '')

                {

                    alert('message8');

                    return false;

                }

            else if(document.form1.descriptionv.value.length == '')

                {

                    alert('message9');

                    return false;

                }

        }

    alert('submit');

}

PS: si je me suis tromper de thème, dites moi où mettre ;p

7 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
17 févr. 2008 à 13:07
Salut,

En effet, si tu enlève le "else" devant tes derniers if, alors il les passera tous en revue, ce qui paraît bien plus logique à la vue de ton code
______________________________________
DarK Sidious
3
maelob Messages postés 943 Date d'inscription mardi 14 novembre 2006 Statut Membre Dernière intervention 7 août 2009 3
16 févr. 2008 à 18:37
Si tu sais ou ça coince ça serait sympa de le dire
0
djmath56 Messages postés 5 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 17 février 2008
16 févr. 2008 à 19:24
je l'avais précisé mais pas bien mis en valeur excusez moi ^^
0
djmath56 Messages postés 5 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 17 février 2008
16 févr. 2008 à 19:29
erf on peut pas éditer ces messages ?

function check()

{

    if(document.form1.nomp.value.length == '')

        {

            alert('message1');

            return false;

        }

    else if(document.form1.urls.value.length == '')

        {

            alert('message2');

            return false;

        }

    else if(document.form1.equipe.value.length == '')

        {

            alert('message3');

            return false;

        }

    else if(document.form1.matos.value.length == '')

        {

            alert('message4');

            return false;

        }

    else if(document.form1.statut.selectedIndex >= 1)

        {

            if(document.form1.photob.checked == true)

                {

                if(document.form1.photourl.value.length == '')

                    {

                        alert('message5');

                        return false;

                    }

                }

        }

    else if(document.form1.statut.selectedIndex >= 2) //Le problème est ici, la condition d'avant marche bien mais celle la ne veut pas s'exécuter semblablement a la precedente !

        {

            if(document.form1.makingb.checked == true)

                {

                if(document.form1.makingurl.value.length == '')

                    {

                        alert('message6');

                        return false;

                    }

                }

        }

    else if(document.form1.statut.selectedIndex >= 3)

        {

            if(document.form1.titrev.value.lenght == '')

                {

                    alert('message7');

                    return false;

                }

            else if(document.form1.urlv.value.length == '')

                {

                    alert('message8');

                    return false;

                }

            else if(document.form1.descriptionv.value.length == '')

                {

                    alert('message9');

                    return false;

                }

        }

    alert('submit');

}

j'ai localiser l'endroit que je soupçonne en bleu dans le code rouge ^^
0

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

Posez votre question
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
17 févr. 2008 à 09:59
Salut,

Y'a un truc que je comprend pas... tu as :
if(document.form1.statut.selectedIndex >= 1)

puis :

if(document.form1.statut.selectedIndex >= 2 )

Y'a comme qui dirait une couille dans le potage !

Si selectedIndex = 3, il passera toujours dans la première condition et jamais dans la deuxième ! Je suis pas sûr que c'est ce que tu veux !

______________________________________
DarK Sidious
0
djmath56 Messages postés 5 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 17 février 2008
17 févr. 2008 à 11:59
bah en faite, j'ai un select avec 5 options !

et par exemple quand on est sur l'option 2, il y a un truc qui s'affiche, (donc des champs à vérifier)

apres si on selectionne l'option 3 .. ya encore un truc en plus etc...

mais aparement d'apres toi vaudrait mieux que je fasse un selectedIndex == ID ... et qu'a chaque fois je remettent les verif ??

C'est vrai que d'apres ton expliquation, sa marcherai surement  mieux !

Mais hier soir, j'avais trouver le moyen de faire marcher en enlevant les else devant les if .. les 3 derniers en particuliers (avec selectedIndex)

Quel solution serait la bonne ?
0
djmath56 Messages postés 5 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 17 février 2008
17 févr. 2008 à 14:50
merci pour l'explication, j'ai pas encore totalement la fibre javascript ^^ (meme si sa ressemble à certains autres langages que je connais ^^)
0
Rejoignez-nous