javascript - p 命令按钮操作不会触发,但 oncomplete 会触发

标签 javascript java html 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”中输入一个值,然后单击命令按钮。首先,action="#{timerConfigurationBean.updateExportJob}"中的函数运行,然后 oncomplete="PF('updatejobpopup').show()"运行。这就是它的初衷,所以没关系。

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

我希望 oncomplete 仅在页面上没有错误时运行,就像 action="#{timerConfigurationBean.updateExportJob}"中的函数一样。

有人可以帮忙吗?

最佳答案

您可以使用 primefaces 的回调来向 View 提供反馈。 因此,在您的操作方法中,您可以执行以下操作:

context.addCallbackParam("ok", true);

在 onComplete 中:

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

关于javascript - p 命令按钮操作不会触发,但 oncomplete 会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43521622/

相关文章:

javascript - 如果其中一个参数包含多个值,如何使用柯里化(Currying)函数工作?

javascript - 在 jquery 小部件中使用 grep 时, "this"的范围发生变化

java - MapReduce中First Reduce Task作为<Key Value>对的输出值

java - Scala classNotFound on Any 类型

jquery - 滚动时滑入动画(同时)

javascript - 测试并非所有空格

javascript - 为什么这个 javascript 片段记录 1?

java - LD_PRELOAD 套接字函数 java

html - 表格标题不以 100% 宽度显示列

javascript - 设置innerHTML 的函数调用不起作用 - 给出未定义