Problème boucle

lintowsca Messages postés 25 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 21 mars 2008 - 24 oct. 2007 à 15:23
lintowsca Messages postés 25 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 21 mars 2008 - 29 oct. 2007 à 09:23
Bonjour,


débutant en javascript, j'ai un soucis.

J'ai cet fonction qui marche


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

{

document.form1.m_2.disabled = true;

document.form1.m_2.disabled = true;

document.form1.m_2.disabled = true;

document.form1.m_2.disabled = true;

document.form1.m_2.disabled = true;

document.form1.m_2.disabled = true;

document.form1.m_2.disabled = true;

document.form1.m_2.disabled = true;

}


et j'aimerais la simplifier dans une boucle car j'ai beaucoup de test du même genre à faire et refaire, donc j'ai tenté cela

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

{


for (i=2; i<10; i++)

{

document.form1.m_.disabled = true;

}

}


Mais cela me renvoit une erreur du genre document.form1.m_ a une valeur NULL ou n'est pas un objet...

J'ai essayé plusieurs choses,mais rien ne marche


Si vous pourriez m'aider, merci beaucoup,


Cordialement

4 réponses

Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 6
24 oct. 2007 à 15:35
Bonjour,
je pense que tu t'es trompé sur
document.form1.m_2.disabled = true;
document.form1.m_2.disabled = true;
document.form1.m_2.disabled = true;
document.form1.m_2.disabled = true;
document.form1.m_2.disabled = true;
document.form1.m_2.disabled = true;
document.form1.m_2.disabled = true;
document.form1.m_2.disabled = true;

vu que c'est toujours la même ligne ;o)

Sinon, pour faire ta boucle essais ( pas testé ) avec eval:

if(document.form1.r_1.checked == true)
{

for (i=2; i<10; i++)
{
    eval( "document.form1.m_"+i+".disabled = true");
}
}

ça devrait passer. mais j'ai pas testé....
donc à voir

[o-_-o]
0
lintowsca Messages postés 25 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 21 mars 2008
24 oct. 2007 à 16:07
Oui désolé j'ai répété plusieurs fois la même ligne, mais je viens de trouver la solution
if(document.getElementById("r_"+j).checked == true)
                {
                    i = j +1;
                    for (i=i; i<=10; i++)
                    {
                        document.getElementById("m_"+i).disabled = true;       
                    }
                    document.getElementById("checkupvisit").value = j;
                }   

Mais désormais j'ai un second problème, je vous l'expose...
voici le programme que je tente de réaliser:

Par exemple si l'utilisateur click dans le premier cadre sur le 2nd et 8th visit, j'aimerais que dans le second cadre, la 9th et 10th se "disabled", le bout de code que j'ai fais fonctionne juste si on coche une visit, mais si je code par exemple  le 2 et 8, il va me "disabled" les 3 - 4 - 5 -6 - 7 - 8 - 9 - 10 visits...

Ensuite j'aimerais aussi que dans : You can check up to ______ visits il m'affiche le nombre de checkbox cochées du premier cadre... je cherche toujours, voici le code un peu plus élaboré que j'ai tenté de faire...

function montre()
    {   
        for (j=1;j<=10;j++)
        {
                if(document.getElementById("r_"+j).checked == true)
                {
                    i = j +1;
                    for (i=i; i<=10; i++)
                    {
                        document.getElementById("m_"+i).disabled = true;       
                    }
                    document.getElementById("checkupvisit").value = j;
                }   
        }                  
    }

Avec ce code, il m'affiche dans checkupvisit la valeur de la plus haute visite coché..

Si je me suis mal expliqué, dites le moi,

Merci,
Cordialement
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
24 oct. 2007 à 18:08
Bonjour,
La réponse est dans la question me semble t-il, je m'explique...



Avec ce code, il m'affiche dans checkupvisit la valeur de la plus haute visite coché.
.
donc on récupére cette valeur et on disabled dans le second cadre de Numero +1 à la fin...



;0)
0
lintowsca Messages postés 25 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 21 mars 2008
29 oct. 2007 à 09:23
Bonjour PetoleTeam,

je n'ai pas compris ta réponse quand tu dis "on disabled dans le second cadre de Numero +1 à la fin..."
0
Rejoignez-nous