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.
>

Reply via email to