Thanks Daniel,

Worked a treat, had tried something similar but for some reason it
complained. This way worked fine.


On Feb 21, 8:54 pm, Daniel Roseman <[EMAIL PROTECTED]>
wrote:
> On 21 Feb, 18:57, Little_Grungy <[EMAIL PROTECTED]> wrote:
>
>
>
> > Hi,
>
> > I have a form definition for two radio buttons named choices. I want
> > to loop through the radio buttons to perform a check with javascript
> > in the rendered html page, however due to the radio button _id's that
> > are rendered by the template, I cannot access them with javascript
> > using getElementById(). Wondering if anyone can suggest how to solve
> > this?
>
> > My form definition contains:
>
> > choices = forms.ChoiceField(label='Choices', required=True,
> > widget=forms.RadioSelect, choices=options)
> > options = (('good', 'Good'), ('bad', 'Bad'))
>
> > The rendered html is as follows:
>
> > <th>
> >   <label for="id_choices_0">Choices:</label>
> > </th>
> > <td>
> > <ul>
> >   <li>
> >     <label>
> >       <input id="id_choices_0" type="radio" name="choices"
> > value="good"/>
> >         Good
> >      </label>
> >   </li>
> >   <li>
> >     <label>
> >       <input id="id_choices_1" type="radio" name="choices" value="bad"/
>
> >         Bad
> >     </label>
> >   </li>
> > </ul>
>
> > My Javascript function is passed an object obj which contains a
> > choices paramater. obj.choices will be either "good" or "bad" so I
> > would normally be able to set it based on what is passed. My normal
> > approach would be to check the current setting by using
> > getElementById, then comparing to what is passed from obj.choices and
> > if equal, setting the relevant radio.
>
> > As I have two id's id_choices_0 and id_choices_1 I'm guessing that I
> > can't use id_choices_0 in getElementById as in previous worlds. Before
> > Django my radio buttons would only have one id which I would use to
> > reference.
>
> >  for (var i=0; i < document.getElementById('id_choices_0').length; i++)
> > {
> >   if (document.getElementById(id_choices_[i]).value == obj.choices)
> > document.getElementById(id_choices_[i]).checked = true;
> >  }
>
> > Can anyone help?
>
> It's not Django that's the problem, it's the javascript. Why not try
> something like this (untested):
>
> var choice;
> var choice_length = 2;
> for (var i=0; i < choice_length; i++)
> {
>   choice = document.getElementById('id_choices_' + i);
>   if (choice.value == obj.choices)
>   {
>      choice.checked = true;
>   }
>
> }
>
> --
> DR.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to