我在我的应用程序中使用jsf / promefaces。我有一个包含多个输入组件的表单,其中2个输入组件是PrimaryKey值。因此,只要用户输入PK值,就会触发“ValueChange”ajax事件并发生重复PK的验证检查。 如果表单中只有PK输入组件,那么当用户在inputtext中输入值并单击Submit按钮(Focus仍然使用InputText)时,将调用InputText的值更改侦听器但不会提交按钮操作。因此,我需要单击“提交”按钮两次。 有没有办法克服这种或方法来排队ajax调用。下面给出了代码。
<p:outputLabel value="selectOneLabel" for="selectOne" />
<p:selectOneMenu id="selectOne" value="#{bean.selectOne}" required="true" >
<f:selectItems value="#{bean.selectOneList}" />
<p:ajax event="change" listener="#{bean.validatePK()}"/>
</p:selectOneMenu>
<p:outputLabel value="inputTextLabel" for="input" />
<p:inputText id="inputText" value="#{bean.inputText}" required="true">
<p:ajax listener="#{bean.validatePK()}"/>
</p:inputText>
<p:commandButton id="submit" action="#{bean.CreateAction()}" value="Submit" />
答案 0 :(得分:0)
这是我实施它的方式:
输入:
<p:inputText value="#{value}">
<p:ajax process="@this" update="@this error_msg" partialSubmit="true"/>
<f:validator validatorId="validatorID"/>
</p:inputText>
按钮:
<p:commandButton id="saveButton"
action="#{controller.save()}"
process="@all"
update="@all"
partialSubmit="false"
/>
这就像一个魅力;)希望它也能帮到你。