p命令按钮动作不会触发但是不完整的火焰

时间:2017-04-20 13:56:53

标签: javascript java html5 jsf jsf-2

我正在使用jsf 2.我的代码的一部分是:

                <h:panelGrid id="jobDetail" columns="3" cellpadding="7">                        

                    <p:outputLabel value="#{msg['content.jobList.JobName']}" />
                    <p:inputText id="jobName" styleClass="BIC_search_textbox" value="#{timerConfigurationBean.selectedTimerConfigurationJob.jobName}" required="true" requiredMessage="#{msg['content.jobNew.requiredfield.errormsg']}"/>
                    <p:message for="jobName" styleClass="error"/>
                </h:panelGrid>

<p:commandButton id="update" value="Update_Button" action="#{timerConfigurationBean.updateExportJob}" styleClass="bottomButtonsAfterFirst" update="jobDetail" oncomplete="PF('updatejobpopup').show()"/>

这只是代码的一部分。当我点击命令按钮“Update_Button”时会发生以下两件事之一:

1)我在inputText“jobName”中输入一个值,然后单击命令按钮。首先运行中的函数=“#{timerConfigurationBean.updateExportJob}”然后运行oncomplete =“PF('updatejobpopup')。show()”运行。这就是它的意图,这样就可以了。

2)我没有在inputtext中输入任何内容(这是必填字段),然后单击命令按钮。我在Inputtext字段旁边的网页上看到一条错误消息(这是因为我在commandButton中有update =“jobDetail”)并且没有运行action =“#{timerConfigurationBean.updateExportJob}”但是oncomplete =“PF(' updatejobpopup')。show()“仍在运行。这是一个问题。

我希望oncomplete仅在页面上没有错误时运行,就像action in action =“#{timerConfigurationBean.updateExportJob}”一样。

有人可以帮忙。

1 个答案:

答案 0 :(得分:3)

您可以使用primefaces的回调来向视图提供反馈。 所以,在你的行动方法中你可以这样做:

context.addCallbackParam("ok", true);

在onComplete中:

oncomplete ="if ( args.ok ) { PF('updatejobpopup').show(); }"