2009-10-14 9 views
0

Je désactive les groupes de boutons radio lorsqu'un utilisateur clique sur une case, en utilisant simplement le javascript brut et la propriété désactivée.Composants Javascript désactivés non désactivés après le bouton Précédent

Ma fonction est trivial:

function toggleEnabled(elementId) { 
    e = document.getElementById(elementId) 
    e.disabled = !e.disabled; 
} 

et il est appelé à l'événement onClick comme onclick = "toggleEnabled ('radio_div')"

Il fonctionne très bien, mais si l'utilisateur clique sur le dos, le navigateur semble se souvenir de l'état de la case à cocher, mais réinitialise l'état des composants dans le div à ce qu'ils étaient à l'origine.

Ceci est dans IE7, et je ne veux pas utiliser une bibliothèque JS en ce moment, donc s'il vous plaît pas de suggestions à cet effet.

Est-ce que je fais quelque chose de mal? Existe-t-il une solution pour obtenir le comportement souhaité (rappelez-vous l'état de la case à cocher et de la div sur Back)?

Répondre

1

Vous devez vérifier chaque valeur de la boîte radio dans votre méthode onload:

var selects = document.getElementByTagName("select"); 
for (var i = 0 ; i < selects.length ; i ++) 
{ 
    //call your code if an option is checked 
    if (selects.options[selects.selectedIndex]) 
    { 
     var selectedOption = selects.options[selects.selectedIndex]; 
     //now you got your option and can enable the div. 
     toggleEnabled('radio_div');// <-- change this depending on selectedOption 
    } 
}