2009-01-30 3 views
1

Je travaille sur un questionnaire alimenté par .NET qui contient plusieurs contrôles de répéteur, dont chaque rangée contient trois radiobuttons. J'essaye d'écrire une fonction Javascript simple pour vérifier tous les contrôles sur la page qui contiennent le mot "chkGreen" dans le nom/id de contrôle.Vérifier toutes les radiocommandes avec une sous-chaîne spécifique sur un formulaire ASP.NET

La page ressemble à ceci:

Repeater 1 
Description 1   () Green () Yellow () Red 
Description 2   () Green () Yellow () Red 
Description 3   () Green () Yellow () Red 

Repeater 2 
Description 1   () Green () Yellow () Red 
Description 2   () Green () Yellow () Red 
Description 3   () Green () Yellow () Red 

Voici la fonction jusqu'à présent:

for (i = 0; i < document.Form1.elements.length; i++) { 
     var _control = document.Form1.elements[i].id 
     if (_control.indexOf("chkGreen") > 0) { 
     eval(_control.checked = true); 
     } 
    } 

Cette fonction ne fonctionne pas. Quand j'ajoute un document.write ou alert() à l'instruction, il se déclenche proprement, donc la logique fonctionne apparemment, c'est juste que le code de contrôle de radiobutton réel ne fonctionne pas.

Des pensées?

Répondre

0

Vous n'avez pas besoin d'évaluer la ligne _control.checked.

for (i = 0; i < document.Form1.elements.length; i++) { 
    var _control = document.Form1.elements[i]; // EDIT: you want the element, not the id of the element 
    if (_control.indexOf("chkGreen") > 0) { 
    _control.checked = true; 
    } 
} 
0

Merci pour la réponse rapide. J'ai essayé la fonction sans utiliser eval() et cela n'a pas fonctionné. J'ai depuis obtenu la fonction de travailler en utilisant document.getElementById:

for (i = 0; i < document.form1.elements.length; i++) { 
    var _control = document.form1.elements[i].id 
    if (_control.indexOf("chkGreen") > 0) { 
    var thecontrol = document.getElementById(_control); 
    thecontrol.checked = true; 
    } 
} 
+0

Argh ... J'ai raté le .id vous mettiez à la fin de la ligne var _control. Édité. –

Questions connexes