Okay, I solved it. IE7 won't update a form element - the form must be
wrapped with a div element and the ID of the div must be used for the
update.

Thanks everyone for your help!


On May 20, 6:18 am, adrianc <[EMAIL PROTECTED]> wrote:
> TJ,
>
> Thank you for taking the time to look at this. I can't get it to work
> in IE7. Your test confirms to me that there isn't a problem with my
> logic, so I'll take another look at the IDs being used.
>
> On May 20, 12:34 am, "T.J. Crowder" <[EMAIL PROTECTED]> wrote:
>
> > Hi,
>
> > FWIW, the fixed version in your follow-up post works fine on Windows
> > XP in the browsers I've tried it in:  FF2, IE6, Safari 3, Opera 9.
> > Most likely an issue with the string you're feeding in or the IDs of
> > the areas.  My test string was:
>
> > "area1,test1.jsp,x=1,area2,test2.jsp,x=2,area3,test3.jsp,x=3"
>
> > ...and the JSPs were along these lines:
>
> > <%
> >     out.println("test1: x = " + request.getParameter("x"));
> > %>
>
> > ...with these "areas" in my HTML page:
>
> > <div id='area1'>area1</div>
> > <div id='area2'>area2</div>
> > <div id='area3'>area3</div>
>
> > All three areas updated correctly.
> > --
> > T.J. Crowder
> > tj / crowder software / com
>
> > On May 19, 9:06 pm, adrianc <[EMAIL PROTECTED]> wrote:
>
> > > Darrin,
>
> > > Thanks for pointing that out. The loop was correct originally, but it
> > > got mangled during debugging. The corrected code is:
>
> > > /** Update multiple areas (HTML container elements).
> > >   * @param areaCsvString The area CSV string. The CSV string is a flat
> > > array in the
> > >   * form of: areaId, target, target parameters [, areaId, target,
> > > target parameters...].
> > > */
> > > function ajaxUpdateAreas(areaCsvString) {
> > >     var areaArray = areaCsvString.split(",");
> > >     var numAreas = parseInt(areaArray.length / 3);
> > >     for (var i = 0; i < numAreas * 3; i = i + 3) {
> > >         new Ajax.Updater(areaArray[i], areaArray[i + 1], {parameters:
> > > areaArray[i + 2]});
> > >     }
>
> > > }
>
> > > It still doesn't work in IE.
>
> > > On May 19, 12:43 pm, darrin <[EMAIL PROTECTED]> wrote:
>
> > > > I can't bring myself to tell you what's wrong (hint: it's not
> > > > prototype), but try some simple debugging, like putting an
> > > > alert('here') before/after the Ajax.Updater call, to make sure your
> > > > *loop* is actually working as you expect it to.
>
> > > > On May 19, 11:53 am, adrianc <[EMAIL PROTECTED]> wrote:
>
> > > > > I apologize if my question duplicates something asked before. I'm new
> > > > > to JS programming and a search of this group didn't provide an answer.
>
> > > > > I'm trying to interface an existing application framework to
> > > > > Prototype. I have a small set of JS functions the framework calls to
> > > > > use the Prototype library.
>
> > > > > One of the functions creates multiple instances of Ajax.Updater when a
> > > > > form is submitted. Only the first Ajax.Updater works, the rest don't
> > > > > do anything. Here is the code:
>
> > > > > /** Update multiple areas (HTML container elements).
> > > > >   * @param areaCsvString The area CSV string. The CSV string is a flat
> > > > > array in the
> > > > >   * form of: areaId, target, target parameters [, areaId, target,
> > > > > target parameters...].
> > > > > */
> > > > > function ajaxUpdateAreas(areaCsvString) {
> > > > >     var areaArray = areaCsvString.split(",");
> > > > >     var numAreas = parseInt(areaArray.length / 3);
> > > > >     for (var i = 0; i < numAreas; i = i + 3) {
> > > > >         new Ajax.Updater(areaArray[i], areaArray[i + 1], {parameters:
> > > > > areaArray[i + 2]});
> > > > >     }
>
> > > > > }
>
> > > > > I thought maybe the Ajax.Updater instances were erasing each other, so
> > > > > I put them in array elements - but that didn't fix the problem.
>
> > > > > I have confirmed the string argument passed to the function is
> > > > > correct. I have confirmed each Ajax.Updater instance works
> > > > > individually.
>
> > > > > Any ideas?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Spinoffs" group.
To post to this group, send email to rubyonrails-spinoffs@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-spinoffs?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to