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.