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.