[ 
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
_______________________________________________
richfaces-issues mailing list
richfaces-issues@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/richfaces-issues

Reply via email to