Giovanni Azua wrote:
hi,
I have been recently asking how to achieve that changing the value of
autocompleter A, triggers an Ajax reload of autocompleter B and make
the only item returned as selected on B i.e. displayed in its
textInputNode.
I followed directions from:
http://struts.apache.org/2.x/docs/ajax-and-javascript-recipes.html#AjaxandJavaScriptRecipes-Linktwoautocompleters%252Cusingtopics
and the reload works okay but making the only element in the ComboBox
selected and displayed in autocompleter textInputNode is the remaining
issue.
Trying to hack some javascript that will do, below is the code to the
closest I've got.
I manage that after the reload the autocompleter displays "kaki" big
deal! but not yet
to display the only item out of the ComboBox.
Ehh please help :)
regards,
Giovanni
Hi Giovanni,
I don't use dojo's autocompleter myself, but after a quick look at the
javascript source for the widget (ComboBox) I can see there's a public
method setSelectedValue(value) which may help, although it's not clear
to me which component of the ComboBox is updated....The js source is
pretty horrible.
My approach would be to start firebug, load your page and place a
breakpoint in your callback function. When the callback is fired, use
firebug's DOM inspection to browse for public methods in the widget
instance returned by dojo.widget.byId() and see if there's anything
useful. Use the watch to call methods directly.
Hope that helps,
Jeromy Evans
***************************** mypage.jsp ****************************
<script type="text/javascript">
dojo.event.topic.subscribe("/after", function(data, type, request)
{
//data : text returned from request
//request: XMLHttpRequest object
//widget: widget that published the topic
// alert(widget.optionsListNode.childNodes.length);
// alert('happened');
if (type == "load")
{
var widget = dojo.widget.byId("eurosPerListedUnit0");
alert(widget.comboBoxValue.size);
widget.textInputNode.value = "kaki";
}
// widget.textInputNode.value = widget.comboBoxValue.value;
}); </script>
<s:url var="exchangeRates" action="AjaxGetExchangeRates.action" />
<s:form id="formSimulation" action="%{targetAction}" method="post"
theme="%{currentTheme}">
<sx:autocompleter tooltip="Provide the first Historic Book"
valueNotifyTopics="/changedHistoricBook0" searchType="substring"
label="Historic Book 1" cssStyle="width: 250px;" dropdownHeight="180"
name="historicBook0" list="historicBooks" listKey="id"
listValue="name" /> ...
<sx:autocompleter id="eurosPerListedUnit0" tooltip="Provide the
Currency Rate 1" formId="formSimulation" href="%{#exchangeRates}"
listenTopics="/changedHistoricBook0"
label="Currency Rate 1" cssStyle="width: 250px;"
name="eurosPerListedUnit0" autoComplete="false" notifyTopics="/after" />
...
<s:submit value="%{buttonLabel}" align="center"/>
</s:form>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]