As a nice change of pace, I thought I would actually post some working code here for people to use. However, I wouldn't mind suggested improvements.
The function expects the id field value of the "source" select box, the id value of the "destination" box, and whatever action that AJAX will have to call to retrieve the set of results (in JSON format) to populate the destination select box with. The JSON fields are expected to be "id" and "name". (Note: personally, I use a Struts action that retrieves a collection, then uses json-lib to convert the collection to a JSON array, then uses HttpServletResponse.getWriter() to print it out.
Originally posted by Eric Pascarello: I would not remove the children to remove the options, there is a way to do it in one line.
I would not use createElement, I would something else tha lets you add options in one line.
Joined: Sep 16, 2007
Ouch... you're right. I didn't think to consider storing the results of json.length because I had forgotten to consider that said length could be completely arbitrary.
I also forgot to dereference the object, good catch.
Originally posted by Eric Pascarello: Also should add
i is global and not local
local variables have quicker lookup when being referenced.
Referencing json.length is is slower and storing a reference into a variable and using the variable in a loop. var len = json.length;
Also nice to destory object references when done using them. myRef = null;