Probleme dans une fonction de verification sous condition if / else if [Résolu]

Signaler
Messages postés
5
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
17 février 2008
-
Messages postés
5
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
17 février 2008
-
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

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
115
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
Messages postés
943
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
7 août 2009
3
Si tu sais ou ça coince ça serait sympa de le dire
Messages postés
5
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
17 février 2008

je l'avais précisé mais pas bien mis en valeur excusez moi ^^
Messages postés
5
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
17 février 2008

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 ^^
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
115
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
Messages postés
5
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
17 février 2008

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 ?
Messages postés
5
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
17 février 2008

merci pour l'explication, j'ai pas encore totalement la fibre javascript ^^ (meme si sa ressemble à certains autres langages que je connais ^^)