在JS调用返回true之后执行actionListener

时间:2013-07-08 05:52:44

标签: javascript jsf-2

我有一个代码:

<p:commandButton actionListener="#{userLeaveBean.addAppliedLeave}" styleClass="apply_button" value="Create Leave" onclick="validateApplyLeave();">
    <f:attribute name="userId" value="#{employee.name}"/>
</p:commandButton>

如果javascript验证返回true,我希望actionListener被触发,如果返回false,则actionListener不应该被触发。但在这种情况下,在java脚本验证之后,即使返回的值为false,actionListener也会触发。我该如何管理?

提前致谢。

1 个答案:

答案 0 :(得分:0)

确保在validateApplyLeave函数中有return语句并更改

onclick="validateApplyLeave();"

进入

onclick="return validateApplyLeave();"

另外,你可以改变

<p:commandButton actionListener="#{userLeaveBean.addAppliedLeave}" styleClass="apply_button" value="Create Leave" onclick="validateApplyLeave();">
    <f:attribute name="userId" value="#{employee.name}"/>
</p:commandButton>

<p:commandButton action="#{userLeaveBean.addAppliedLeave(employee.name)}"
    styleClass="apply_button" value="Create Leave" 
    onclick="return validateApplyLeave();"/>