I see. This was really an experiment which i think you've explained
the reason. The search/menu panels don't need to be ajax loaded but i
was just trying it out. A ruby dynamic include via erb/erubis will be
fine.
Thanks

On Jan 22, 8:30 am, "T.J. Crowder" <t...@crowdersoftware.com> wrote:
> Sorry, just realized:  You're saying that 'searchForm' gets inserted
> in the 'search' div via "ruby http post" (or via doUpdate, I'm not
> sure which, but it doesn't matter).  And you're calling addObservers
> from window.onload.  Well yes, order matters.  The thing has to exist
> in the DOM before you can retrieve and access it.  You have no
> guarantee that any Ajax calls are going to have completed before
> window.onload is fired.  That's what the onSuccess callback[1] is for.
>
> [1]http://prototypejs.org/api/ajax/options
>
> HTH,
> --
> T.J. Crowder
> tj / crowder software / com
> Independent Software Engineer, consulting services available
>
> On Jan 21, 11:42 pm, theG <gurpal2...@hotmail.com> wrote:
>
>
>
> > When I hardcode a form into a div and try to get a handle on it via $
> > ('') it works. When I include the txt dynamically via an AJAX update()
> > it doesnt:
>
> > ----------JS--------------------
> > function doUpdate(id, url) {
> >   new Ajax.Updater(id, url);
>
> > }
>
> > doUpdate('search', 'search');
> > doUpdate('menu', 'menu');
>
> > function doSearch(event) {
> >   new Ajax.Updater('menu', 'menu', {
> >   parameters: {
> >     txt: $('txt').value
> >   }
> >   });
> >   event.preventDefault();
>
> > }
>
> > function addObservers() {
> >   $('searchForm').observe('submit', doSearch);
>
> > }
>
> > Event.observe(window, 'load', addObservers);
>
> > -----form HTML--------
> > Search
> > <form method="post" id="searchForm" style="display: inline">
> >         <input type="text" name="txt" id="txt" size="20"/>
> >         <input type="submit" name="btnSubmitSearch" id="btnSubmitSearch"
> > value="Go!"/>
> > </form>
>
> > -----------HTML----------
> > <body>
> >   <div id="search">      <!-- stuff here either inserted via ruby ajax
> > post OR hardcoded -->
> >   </div>
>
> >   <div id="menu">
> >   </div>
> > </body>
>
> > ------------------
> > Now I get $('searchForm') is null when i use doUpdate('search',
> > 'search'); - gets it via ruby http post
> > If however i comment out "doUpdate('search', 'search');" and instead
> > actually hardcode into the div
>
> > I looked into defer() but it didn't help.
>
> > Thanks- Hide quoted text -
>
> - Show quoted text -
--~--~---------~--~----~------------~-------~--~----~
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