Hi,

> $$(radioTemplate.evaluate(selectThis))[0].writeAttribute("checked",
> "checked");  // blows up!

The first step is to find out *what part* is blowing up. Break the
statement up into its component parts:

var selector = radioTemplate.evaluate(selectThis);
var list = $$(selector);
var element = list[0];
element.writeAttribute("checked", "checked");

...and walk through with a debugger[1] and see what things look like
at each stage. According to your quoted code, the value of `selector`
once you've done the `evaluate` _will_ be "input[type=radio]
[name=owner][value=1]" (see this: [2]). I'm fairly sure templates have
nothing to do with what's going wrong. (My money is on that selector
not matching anything, hence indexing into it giving you `undefined`,
which you're then trying to call a function on. So the question is:
Why isn't it matching anything.)

[1] http://blog.niftysnippets.org/2011/03/no-excuse.html
[2] http://jsbin.com/owaqa3

FWIW,
--
T.J. Crowder
Independent Software Engineer
tj / crowder software / com
www / crowder software / com


On Apr 18, 1:30 am, Phil Petree <phil.pet...@gmail.com> wrote:
> var bOwner = 1;
> var radioTemplate = new
> Template('input[type=radio][name=#{selectID}][value=#{selectValue}]');
> $('ajRecord').value = 1;
> $('ajacct_id').value = 1;
> $('ajhoa_id').value = 1;
> selectThis = {selectID: 'owner', selectValue: bOwner };
> $$(radioTemplate.evaluate(selectThis))[0].writeAttribute("checked",
> "checked");  // blows up!
>
> // this works but we prefer to use the template for brevity/bandwidth sake
> if(bOwner > 0 )
> {
>   $('ajowner').writeAttribute("checked", "checked");}
>
> else
>
> $$("input[type=radio][name='owner'][value='false']")[0].writeAttribute("che 
> cked",
> "checked");
>
> On Sun, Apr 17, 2011 at 6:45 PM, Walter Lee Davis <wa...@wdstudio.com>wrote:
>
>
>
>
>
>
>
> > Sure, this is something I have struggled with as well. The return from a
> > Template.evaluate call is not the generated object, but some other form of
> > return (probably a boolean success or something like that -- not exactly
> > sure).
>
> > If you need to get access to the object immediately after creating it, you
> > may want to use the new Element() syntax instead of Template, because this:
>
> > var foo = new Element('div',{id:'bar'});
>
> > will return a handle to the element, even before you add it to the page,
> > while Template.evaluate may need you to pause a beat before $('bar') will
> > access the element from your page after you've inserted it.
>
> > Walter
>
> > On Apr 17, 2011, at 2:52 PM, Phil Petree wrote:
>
> >   Using Prototype version 1.6.1 (I know everyone is up to 1.7 but we can't
> >> upgrade at this time)
> >> Code looks like this:
>
> >> var selectThis;
> >> var radioTemplate = new
> >> Template('input[type=radio][name=#{selectID}][value=#{selectValue}]');
> >> var bValue = 1;  // this is actually set from the rc of a function and is
> >> absolutely 1 but it shouldn't matter
>
> >> selectThis = {selectID: 'owner', selectValue: bValue };
> >> $$(radioTemplate.evaluate(selectThis))[0].writeAttribute("checked",
> >> "checked");
> >> the last line causes a throw and all processing stops. any ideas?
>
> >> Thanks,
>
> >> Phil
>
> >> --
> >> You received this message because you are subscribed to the Google Groups
> >> "Prototype & script.aculo.us" group.
> >> To post to this group, send email to
> >> prototype-scriptaculous@googlegroups.com.
> >> To unsubscribe from this group, send email to
> >> prototype-scriptaculous+unsubscr...@googlegroups.com.
> >> For more options, visit this group at
> >>http://groups.google.com/group/prototype-scriptaculous?hl=en.
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Prototype & script.aculo.us" group.
> > To post to this group, send email to
> > prototype-scriptaculous@googlegroups.com.
> > To unsubscribe from this group, send email to
> > prototype-scriptaculous+unsubscr...@googlegroups.com.
> > For more options, visit this group at
> >http://groups.google.com/group/prototype-scriptaculous?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"Prototype & script.aculo.us" group.
To post to this group, send email to prototype-scriptaculous@googlegroups.com.
To unsubscribe from this group, send email to 
prototype-scriptaculous+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en.

Reply via email to