【发布时间】:2013-10-14 23:58:39
【问题描述】:
我的要求是a4j:commandButton 应该在点击时被禁用,它应该保持禁用状态直到数据加载到rich:dataTable。
你能告诉我我们如何实现它吗?我们可以为此使用a4j:status。我已经在使用a4j:status 来显示进度。我们能否捕获a4j:status 的开始和结束标志,并在此基础上启用和禁用a4j:commandButton。
【问题讨论】:
我的要求是a4j:commandButton 应该在点击时被禁用,它应该保持禁用状态直到数据加载到rich:dataTable。
你能告诉我我们如何实现它吗?我们可以为此使用a4j:status。我已经在使用a4j:status 来显示进度。我们能否捕获a4j:status 的开始和结束标志,并在此基础上启用和禁用a4j:commandButton。
【问题讨论】:
如果你使用 JQuery,你可以试试这个:
<a4j:commandButton onbegin="$(this).prop('disabled',true);" oncomplete="$(this).prop('disabled',false);" />
当您单击按钮时,会调用 onbegin JS,并且当您的 AJAX 请求完成时,将调用 oncomplete,这将再次启用按钮。
如果不使用 JQuery,请使用纯 javascript(foo 是您的元素):
foo.disabled = true;
foo.disabled = false;
【讨论】:
<a4j:commandButton id="Search" value="[ Search ]" style=" margin-left: 60px; height: 25px; margin-bottom: 7px;" onbegin="$(this).prop('disabled',true);" onclick="resetSearch();doSearch();" oncomplete="$(this).prop('disabled',false);"/> <a4j:jsFunction name="resetSearch" action="#{abc.resetSearch}" reRender="Search,searchResultPanel" /> <a4j:jsFunction name="doSearch" action="#{abc.Search}" reRender="Search,searchResultPanel" />