I was trying something like below —
<h:commandButton id="btnOK">
<f:ajax event="action" execute="@this" render="idHeader"
listener="#{myBean.actionSubmit()}"/>
</h:commandButton>
And I want when that ajax request completes, do some processing in the UI.I am using following jQuery code for that :
$(document).ajaxComplete(function() {
$.modal.close();
});
But my problem is the jQuery method is not fired at all. I am wondering if JSF ajax submission fires the ajaxComplete event or not??
The standard JSF impl doesn’t use jQuery API to send ajax requests. JSF uses its own internal API which you can find in the auto-included
jsf.jsfile. So the jQueryjQuery.ajaxComplete()is never called. It would only be called when jQuery’s$.ajax()(and its shortcuts$.get(),$.post(), etc) is being used. Only jQuery based component libraries use them such as PrimeFaces with<p:commandXxx>and<p:ajax>. For standard JSF<f:ajax>, you need to use JSF’s ownjsf.ajax.addOnEvent()handler instead, or theoneventattribute of the<f:ajax>.In your particular case I think the
oneventattribute is mose easy:with
The
data.statuscan have 3 values:begin,completeandsuccess. See also tables 14-4 and 14-3 of the JSF specification.See also: