And just because so many things about forms are special in IE, just a
quick note that this is not specific to forms, the same thing happens
to other content within the area being cleared:

http://jsbin.com/elihi5/6

-- T.J. :-)

On Jun 16, 4:16 am, "T.J. Crowder" <t...@crowdersoftware.com> wrote:
> > I figured it out.  I was wiping out the form by setting the innerHTML
> > property of a parent div before calling form.serialize.  Interestingly
> > though, this worked in previous versions of IE and still does in
> > virtually every other browser, if you have a reference to the form
> > before wiping it out.
>
> If you have a reference to the form's DOM element prior to setting
> `innerHTML`, it should remain valid. I found it so surprising that IE8
> would get this wrong that (with apologies) I had to test it for
> myself. But I can easily replicate your result on IE6 - IE9:
>
> http://jsbin.com/elihi5
>
> It only happens if you remove the form by setting `innerHTML` on its
> parent, though. If you remove it via DOM `removeChild`, it works
> correctly:
>
> http://jsbin.com/elihi5/2
>
> So it's down to how IE handles setting `innerHTML`. Apparently, doing
> so destroys the parent/child relationship of the elements therein, as
> we can see here:
>
> http://jsbin.com/elihi5/5
>
> If I use `innerHTML` to clear it, although my reference to the form
> remains valid, the form no longer has any children. If I already have
> a reference to one of its children, my reference remains valid, but
> the form still loses that child.
>
> Very surprising behavior. I suppose since `innerHTML` is a Microsoft
> invention and hasn't until recently[1] been subject to any
> standardization, calling this "wrong" (as I did above) is harsh. But
> really, really surprising.
>
> Thanks for letting us know about it!
>
> [1]http://www.w3.org/TR/html5/apis-in-html-documents.html#dom-innerhtml
> --
> T.J. Crowder
> Independent Software Engineer
> tj / crowder software / com
> www / crowder software / com
>
> On Jun 16, 12:07 am, Don <donlope...@gmail.com> wrote:
>
>
>
>
>
>
>
> > On Jun 15, 2:25 am, "T.J. Crowder" <t...@crowdersoftware.com> wrote:
>
> > > Hi,
>
> > > On Jun 14, 5:40 pm, Don <donlope...@gmail.com> wrote:
>
> > > > form.serialize in IE8 is returning a blank string, even though there
> > > > are elements.  Should this be working in IE8?
>
> > > That seems really unlikely. What does your form look like? And in
> > > particular, do the form fields have `name` values (rather than `id`s)?
>
> > I figured it out.  I was wiping out the form by setting the innerHTML
> > property of a parent div before calling form.serialize.  Interestingly
> > though, this worked in previous versions of IE and still does in
> > virtually every other browser, if you have a reference to the form
> > before wiping it out.

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