[richfaces-issues] [JBoss JIRA] (RF-13605) a4j:ajax button click event gets lost

Brian Leathem (JIRA) issues at jboss.org
Tue Apr 22 12:48:34 EDT 2014


    [ https://issues.jboss.org/browse/RF-13605?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12963088#comment-12963088 ] 

Brian Leathem commented on RF-13605:
------------------------------------

Indeed, as [~michpetrov] pointed out the problem here is one of competing nearly-simultaneous ajax requests.

The user should consider which even should trigger the ajax update, and should consider moving the ajax _change_ listener on the input text into a _valueChangeListener_ property of the inputText.  This way the change listener would get executed when the ajax update initiated by the button was processed.

See:
https://javaserverfaces.java.net/nonav/docs/2.1/vdldocs/facelets/h/inputText.html
                
> 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
>         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}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the richfaces-issues mailing list