h:inputText that has rich:suggestionBox practically cannot be
combined with a4j:support event="onBlur" because of 2 annoying problems
-------------------------------------------------------------------------------------------------------------------------------------
Key: RF-7527
URL:
https://jira.jboss.org/jira/browse/RF-7527
Project: RichFaces
Issue Type: Bug
Components: component-input
Affects Versions: 3.3.1
Environment: The scenario is for Firefox 3.5 and Opera 9.1, RichFaces >= 3.1
Reporter: Konstantin Spirov
Assignee: Ilya Shaikovsky
Attachments: test.xhtml
There are 2 problems mentioned here, but I am combining them in one report, because the
test scenario I will provide is the same. The workarounds I am providing are not
satisfying.
The two these problems are in construction like:
<h:inputText style="margin:0px;" id="xxx"
value="xxx">
<a4j:support event="onblur" reRender="xxx"
bypassUpdates="true" ajaxSingle="true"/>
</h:inputText>
<rich:suggestionbox for="xxx">
The approach is a4j:support rerender=xxx is *very standard* (see seam-gen for examples),
and it is practically necessary if we want to modify automatically from the server the
field after it is changed.
Problem 1: Display suggestion list and click on some suggestion (with the mouse). The
value will be updated for a while, then *the old content* is recovered (incorrectly ). We
have again empty field, which is very annoying. PLEASE notice that if you had used arrows
and tab from the keyboard, everything would work correctly - so there is a solution, but
it doesn't work when the user clicks with the mouse (our users usually click with the
mouse, don't use keyboard :-)
Problem 2: JavaScript error if you try to display the suggestion again (see your browser
console). The suggestionbox stops working until you reload the page.
Exact steps to reproduce quickly test platform (I am sending an attachment just for
refference - it is similar)
1) Take from Richfaces showcase RichInput:SuggestionBox:ObjectsUsageExample
2) Add value="#{bean.attribute} to <h:inputText (create the "bean" in
the most quick and easy for you way, in my platform it is seam component in conversation
scope)
3) Inside <h:form> wrap with <a4j:queue> (probably not necessary, but
let's not risk the repeatability of the scenario)
4) From rich:suggestionBox remove:
usingSuggestObjects=...
onobjectchange=...
5) Add in h:inputText <a4j:support event="onblur"
reRender="statesinput" bypassUpdates="true"
ajaxSingle="true"/>
You will see that the last step line makes everything unusable :-(
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: