onclick
和onstart
之间的区别是什么?
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()"/>
答案 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被调用。