从a4j:commandLink
迁移到h:commandButton
的问题。
this working case:
<a4j:commandLink event="onclick" onclick="if (!confirm('#{resourceBundle.agreement_cancel_message}')) return false;" oncomplete="window.location.href='menu?agreementId='+ agreementId;"/>
此情况下h:commandButton
不工作,当前页面刚刚刷新:
<h:commandButton onclick="if (!confirm('#{resourceBundle.agreement_cancel_message}')) return false;window.location.href='menu?agreementId='+ agreementId;"/>
我知道,我不能用oncomplete
代替h:commandButton
。
您需要always return false
,以防止按钮的默认操作(提交表单)。
<h:commandButton onclick="if(confirm('#{resourceBundle.agreement_cancel_message}'))window.location.href='menu?agreementId='+ agreementId;return false;"/>
(将{}
放在if
正文周围可以提高可读性)
<h:commandButton>
?<button onclick="if(confirm('#{resourceBundle.agreement_cancel_message}'))window.location.href='menu?agreementId='+ agreementId;return false;"/>
页面刷新,因为输入的默认事件处理程序正在工作。
尝试阻止输入的提交行为(返回false;在结尾):
<h:commandButton onclick="if (!confirm('#{resourceBundle.agreement_cancel_message}')) return false;window.location.href='menu?agreementId='+ agreementId; return false;"/>