我在我的应用程序中使用 jsf/promefaces。我有一个包含多个输入组件的表单,其中 2 个输入组件是 PrimaryKey 值。因此,一旦用户输入 PK 值,就会触发“ValueChange”ajax 事件,并进行重复 PK 的验证检查。 如果表单中只有 PK 输入组件,那么当用户在 inputtext 中输入值并单击“提交”按钮时(焦点仍然是 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" />
最佳答案
这就是我的实现方式:
输入:
<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"
/>
这就像一个魅力;)希望它也能帮助你。
关于java - 必须单击 "Submit"按钮两次才能提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20966772/