Hey Nic, I have a couple small recommendations- hopefully one will fix the issue.
Try using $.get() instead of $.ajax, and specify "type" option as "html"- alternatively, you can use $.load() if your ultimate purpose is to inject this HTML into DOM. In addition rather than using find(), just select by ID as a subset of the DOM node.. alert($(html).find("#test") becomes alert($("#test", html)); Hope some of this helps... cheers! Nic Luciano Senior Web Developer @ AdaptiveBlue http://www.twitter.com/nicluciano http://www.linkedin.com/in/nicluciano On Mon, Apr 13, 2009 at 3:35 PM, Nic Hubbard <nnhubb...@gmail.com> wrote: > > Nope, that does not work either. > > On Apr 13, 12:20 pm, Jack Killpatrick <j...@ihwy.com> wrote: > > Maybe try: > > > > success: function(html){ > > alert($(html).find('form').attr('action')); > > > > I had some issues in the past using form id's with the jquery form > > plugin, but usually getting it using 'form' worked. > > > > That said, since the response isn't in the DOM yet, I'm not sure if that > > might present an issue (too/instead). > > > > - Jack > > > > Nic Hubbard wrote: > > > Yes, this is very odd. I have tried it quite a few ways, but I can > > > never target the form. Any other ideas? > > > > > It is frustrating because I really need to target a form in the html > > > response... > > > > > On Apr 13, 11:45 am, James <james.gp....@gmail.com> wrote: > > > > >> That's strange. I can't get it to work either and I'm getting the same > > >> results as you (I can get #test2, but not #test). I've even truncated > > >> the response down to as if you're only receiving the <form> part and > > >> it still doesn't work. I'd be interested in seeing what happens here > > >> too. > > > > >> On Apr 13, 6:47 am, Nic Hubbard <nnhubb...@gmail.com> wrote: > > > > >>> Test page to show the problem:http://www.puc.edu/dev/tests/ajax-test > > > > >>> On Apr 13, 9:33 am, Nic Hubbard <nnhubb...@gmail.com> wrote: > > > > >>>> I am pulling my hair out over this. I swear that this is a bug. > > > > >>>> For some reason, I CANNOT target any forms within the html response. > > >>>> I have tried very simple examples and it still won't work. Here is > > >>>> what I have, that still returns undefined: > > > > >>>> HTML: > > >>>> <form id="test" action="http://test.com"> > > >>>> <span id="test2">this is my text</span> > > >>>> </form> > > > > >>>> jQuery: > > >>>> success: function(html){ > > >>>> alert($(html).find("#test").attr('action')); > > >>>> alert($(html).find("#test2").text()); > > > > >>>> } > > > > >>>> #test2 works, but #test never does, and it seems this is because it > is > > >>>> a form. Have I done something wrong here? Can I not target a form? > > > > >>>> On Apr 12, 4:35 pm, Nic Hubbard <nnhubb...@gmail.com> wrote: > > > > >>>>> I have an ajax GET call that returns the HTML of a page on my > server. > > >>>>> Within that page is a form with a specific ID. I know it is there, > I > > >>>>> can see it in the response in Firebug, but when I try to get > > >>>>> attributes of that ID, it always returns undefined! What have I > done > > >>>>> wrong here? > > > > >>>>> success: function(html){ > > > > >>>>> $(html).find('#main_form').each(function() { > > >>>>> var linking_data = $(this).serialize(); > > >>>>> var form_action = $(this).attr('action'); > > >>>>> alert(form_action); > > > > >>>>> }); > > >>>>> } > > > > >>>>> I have tried to not use each() and that still returns undefined. I > > >>>>> don't get it. >