Primefaces onstart vs onclick

时间:2014-10-22 04:59:30

标签: primefaces

onclickonstart之间的区别是什么?

e.g。

<p:commandButton id="checkout" value="Complete Checkout" action="#{checkoutBean.checkout}" update="@form" 
    onclick="PF('blockui').block()" onstart="PF('blockui').block()" oncomplete="PF('blockui').unblock()"/>

1 个答案:

答案 0 :(得分:5)

onclick =在实际表单提交之前/在ajax调用之前调用(这就是为什么在onclick中调用return false;会阻止表单提交/ ajax调用的流程 - 换句话说onclick是在按钮的action之前调用。

  

当用户点击元素

时会发生onclick事件

onstart =在onclick之后被调用,它的第一阶段ajax从客户端流向服务器,一旦你在那里,你的ajax已经开始,你无法真正阻止它......

  

ajax调用即将开始时会发生onstart事件


IMO ,您最好保持一致,并在PF('blockui').block()中调用onstart代码,因为您在oncomplete上停止了代码(两者都是与ajax相关的阶段),并且保留onclick用于其他目的(可能由于某种原因,您希望放置一个可能调用return false;的条件语句,这将阻止您的ajax被调用。