]
Brian Leathem updated RF-13605:
-------------------------------
Labels: gss waiting_on_user (was: )
a4j:ajax button click event gets lost
-------------------------------------
Key: RF-13605
URL:
https://issues.jboss.org/browse/RF-13605
Project: RichFaces
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: component-a4j-core
Affects Versions: 4.3.6
Reporter: abhishek vijra
Labels: gss, waiting_on_user
Attachments: queue.zip
Clicking on the submit button of a form containing input elements with valuechange event
listeners triggers only the execution of the event listeners of the corresponding input
elements, but the button click event apparently gets lost and the form isn't actually
being submitted. The user has to click on the button again to finally submit it.
Explicitly setting the requestDelay of an associated a4j:queue to say 200ms for all events
seems to preserve the click event and the form gets submitted as expected in our specific
test environment. This isn't a generally acceptable workaround though, as it
introduces redundant global delay and hardly preserves the click event reliably across
environments with different timing constraints.
Attached a testcase to isolate the problem, see the attached zip file containing a
minimal JSF application with a simple RichFaces-enabled form which reproduces the
undesired behavior.
{code}
<h:panelGroup id="greeting">
<h:outputText value="Hello #{richBean.name}!" rendered="#{not empty
richBean.name}" style="font-size:2em" />
</h:panelGroup>
<!-- <a4j:queue name="org.richfaces.queue.global"
requestDelay="200" /> -->
<h:form>
<h:panelGrid id="panel" columns="2" border="0"
cellpadding="0" cellspacing="10">
<h:outputLabel value="Name:" for="nameInput" />
<h:inputText id="nameInput" value="#{richBean.name}">
<a4j:ajax event="change" listener="#{richBean.normalizeName}"
render="@form" />
</h:inputText>
<f:facet name="footer">
<h:panelGroup style="display:block; text-align:right">
<a4j:commandButton id="submit" value="Submit"
render="greeting" />
</h:panelGroup>
</f:facet>
</h:panelGrid>
</h:form>
{code}