我在組織表單時遇到問題。當我做一個表單按鈕(或任何其他組件進行Ajax調用)不執行操作,但他們確實執行更新。當我將窗體分成兩個新窗體時,按鈕開始工作。JSF表單中的按鈕有時不會執行操作
在這種情況下,按鈕和自動完成功能不起作用。
<h:form styleClass="question-#{cc.attrs.question.id}">
...
<p:commandButton value="add answer" update="@form" action="#{questionEditorBean.addAnswer}" />
<p:commandButton value="save" update="@(.question-#{cc.attrs.question.id})" action="#{cc.attrs.onSave}" oncomplete="#{cc.attrs.onCancel}" />
<p:commandButton value="cancel" onclick="#{cc.attrs.onCancel}" />
<p:autoComplete value="#{questionEditorBean.newTag}" id="tagSelect" completeMethod="#{tagBean.completeTag}" dropdown="true"
var="t" itemLabel="#{t.name}" itemValue="#{t}" converter="#{tagConverter}" forceSelection="true">
<p:ajax event="itemSelect" action="#{action}" update="@form"/>
</p:autoComplete>
</h:form>
當我拆分窗體一切正常。
<h:form styleClass="question-#{cc.attrs.question.id}">
...
<p:commandButton value="add answer" update="@form" action="#{questionEditorBean.addAnswer}" />
<p:commandButton value="save" update="@(.question-#{cc.attrs.question.id})" action="#{cc.attrs.onSave}" oncomplete="#{cc.attrs.onCancel}" />
<p:commandButton value="cancel" onclick="#{cc.attrs.onCancel}" />
</h:form>
<h:form>
<p:autoComplete value="#{questionEditorBean.newTag}" id="tagSelect" completeMethod="#{tagBean.completeTag}" dropdown="true"
var="t" itemLabel="#{t.name}" itemValue="#{t}" converter="#{tagConverter}" forceSelection="true">
<p:ajax event="itemSelect" action="#{action}" update="@form"/>
</p:autoComplete>
</h:form>
我沒有嵌套窗體。我一直在遇到這個問題。我不明白這種行爲,我不想將按鈕和組件分成更多的形式,當它們應該在概念上在一起時。有解決方案嗎?
cc.attrs.onCancel是你bean中的一個方法還是代表客戶端js函數的文本? – Daniel
這是JavaScript。關閉對話框。 – ziri
你的最新動作無法以單一形式工作? – Daniel