Jsf 2 <;p:blockUI>;不响应<;h:命令按钮>&书信电报;f:ajax>;
我得到了一个Jsf 2 <;p:blockUI>;不响应<;h:命令按钮>&书信电报;f:ajax>;,jsf-2,primefaces,commandbutton,blockui,Jsf 2,Primefaces,Commandbutton,Blockui,我得到了一个的仅侦听PrimeFaces/jQuery特定的pfAjaxSend和pfAjaxComplete事件。这些事件由所有PrimeFaces ajax组件触发,但不是由标准JSF触发 您有3种选择: 用替换,让发送PF/jQuery ajax请求,而不是标准的JSF请求 <h:commandButton id="login" value="Login" action="#{bean.login}"> <p:ajax process="@form" update
的
仅侦听PrimeFaces/jQuery特定的pfAjaxSend
和pfAjaxComplete
事件。这些事件由所有PrimeFaces ajax组件触发,但不是由标准JSF
触发
您有3种选择:
用
替换
,让
发送PF/jQuery ajax请求,而不是标准的JSF请求
<h:commandButton id="login" value="Login" action="#{bean.login}">
<p:ajax process="@form" update="@form" />
</h:commandButton>
但可能会有一些不想要的副作用
在
事件期间手动触发特定的
<f:ajax ... onevent="triggerBlockUI" />
...
<p:blockUI widgetVar="widgetBlockUI" ... />
不用说,选项1是最简单的选择。试试p:commandlink。我在h:commandlink上也遇到了同样的问题,问题得到了解决您是否尝试了使用p:ajax
的h:commandButton
?哦,我错过了您的评论。请参阅已接受的答案。:)是的,我已经注意到了
jsf.ajax.addOnEvent(function(data) {
if (data.status === "begin") {
$(document).trigger("pfAjaxSend", [null, data]);
}
else if (data.status === "success") {
$(document).trigger("pfAjaxComplete", [null, data]);
}
});
<f:ajax ... onevent="triggerBlockUI" />
...
<p:blockUI widgetVar="widgetBlockUI" ... />
function triggerBlockUI(data) {
if (data.status === "begin") {
PF("widgetBlockUI").show();
}
else if (data.status === "success") {
PF("widgetBlockUI").hide();
}
}