我有一个primefaces对话框,其中包含一个输入文本区域和一个命令按钮“提交”。
我有一个包含“拒绝”按钮的表单,表单在Tabview中。当用户点击“拒绝”按钮时,我会显示对话框“rejectDialog”,供用户输入拒绝原因。一旦用户输入注释并在对话框中单击“提交按钮”“submitButton”,就会在bean中调用一个操作方法来更新注释值。我有一个调用javascript方法的oncomplete属性。动作方法完成后,永远不会执行javascript方法并关闭对话框。该操作成功执行,我没有收到任何错误。我也尝试用onsuccess替换oncomplete,但仍然没有执行javascript方法。
我想知道为什么javascript永远不会在对话框中的oncomplete中被调用?
我还尝试在oncomplete属性中添加一个警报,但仍然不会执行警报。
代码附于下方。
<p:dialog id="rejectDialog" header="Enter Comments"
hideEffect="explode" showEffect="explode"
resizable="false" widgetVar="rejectDlg"
style="background: #bcbcbc !important;"
>
<h:panelGrid columns="1" cellpadding="0" cellspacing="2"
styleClass="commentsPanel"
id="dialogpanelgrid">
<p:outputLabel for="rejectComments" value="Enter Comments *: "
style="font-weight: bold;">
</p:outputLabel>
<p:inputTextarea cols="40" rows="4" autoResize="false"
id="rejectComments" styleClass="rejectCommentsCls"
value="#{requestDetailsMB.rejectCommentsDesc}"
style="background: lightgray !important; color:#000 !important;"
widgetVar="txtreject"
>
<f:validator validatorId="commentsValidator"></f:validator>
</p:inputTextarea>
<h:outputLabel id="rejectCommentsMessage" class="rejectCommentsMsg" value=""
style="color:red !important; font-weight: bold;">
</h:outputLabel>
</h:panelGrid>
<p:commandButton id="submitButton"
style="margin-top: 15px; float:right;"
value="Submit"
onclick="return validate();"
action="#{requestDetailsMB.rejectRequest}"
oncomplete="performRejectAction();"
/>
</p:dialog>
答案 0 :(得分:0)
我在将javascript放入onclick
的{{1}}事件之前遇到了问题。 javascript可以覆盖primefaces的行为,这可能是commandButton
未被执行的原因。我建议您改为使用oncomplete
事件:
onstart