I have a Design Studio form where I put a listbox tool on the form. I have a working DME and have parsed the XML properly and have verified the returned value using alert().
I followed several helpful examples here, but I can't get the values added to the list box.
When I run the form directly from IE using a bookmark with ?DEBUG=True appended, the error is "Servlet Express reported: Index record does not exist". Beyond that, the debug information is not helpful. Normally I would is the IE F12 debugger examine values and step through javascript code, but portal always shuts the debug window when it starts.
I've isolated the failure to the appendChild() function, second to last line of code here. Based on the error, I think maybe I don't have the correct reference to the listbox object on the form, but I tried everything I can think of.
Anyone have any suggestions?
Also, is there a reference for the listbox (and other objects) properties and methods so I can display some of them with alert()?
I looked in the DS Objects Viewer, but it does specifically talk about toolbox object properties.
// Assign the DMEs return value to an XML datastorage object objXML = new portalWnd.DataStorage(strReturn);
// Extract the records from the datastorage object to an array arrRecs = objXML.document.getElementsByTagName("RECORD"); //var elmListbox = lawform.getElement("lst_fiscal_year");
//var elmListbox = lawform.getElement("_l13");
//var elmListbox = document.getElementById("lst_fiscal_year");
var elmListbox = document.getElementById("_l13");
//var elmListbox = lawForm.getFormElement("lst_fiscal_year");
alert("Array count is " + arrRecs.length);
for (j=0; j < arrRecs.length; j++) { arrCols = arrRecs[j].getElementsByTagName("COL"); alert(arrCols[0].firstChild.data); var elmListval = document.createElement("span"); alert("1") elmListval.setAttribute("text","") alert("2") elmListval.setAttribute("tran",arrCols[0].firstChild.data) alert("3 " + arrCols[0].firstChild.data) elmListval.setAttribute("disp",arrCols[0].firstChild.data) alert("4 " + arrCols[0].firstChild.data) elmListbox.appendChild(elmListval) alert("5") }
Thanks Randy. That wasn't exactly what it wanted, but it put me on the right track. This is what worked:
var elmListbox = document.getElementById("VALUES_l13");
How did you discover this? The Design Studio guides examples do not include "VALUES", just the field number, e.g. "_l13"