gpt4 book ai didi

validation - 使用新值更新表单时,如何在验证失败后重置表单中的输入字段

转载 作者:行者123 更新时间:2023-12-04 14:13:36 27 4
gpt4 key购买 nike

我在 PrimeFaces 4.0 中使用 JSF 2。

我有一个包含一些输入和验证的表单。从对话框中选择实体时,某些字段可能会自动填充。当我在提交整个表单(并验证)之前选择实体时,这很好用。但是当我在验证后选择一个实体时,组件的更新不起作用。

JSF 页面:

<h:form id="form">
<p:inputText id="id" value="#{bean.user.id}" required="true"
onclick="PF('usersDialog').show()" />
<p:inputText id="name" value="#{bean.user.name}" required="true"
onclick="PF('usersDialog').show()" />
<p:commandButton value="submit" action="#{bean.submit}" update=":form" />
</h:form>

<p:dialog widgetVar="usersDialog">
<h:form>
<p:dataTable value="#{bean.users}" var="user">
<p:column>
<p:commandButton value="choose" onclick="PF('usersDialog').hide()"
process="@this" action="#{bean.select(user)}" update=":form" />
</p:column>
<p:column>
<h:outputText value="#{user.name}" />
</p:column>
</p:dataTable>
</h:form>
</p:dialog>

我知道它取决于 JSF 生命周期,但我无法修复它。
那么从对话框中选择新实体时,如何在验证失败后更新表单?

提前致谢。

最佳答案

正是为了这个目的, <p:resetInput> component被引入(基于 OmniFaces ResetInputAjaxActionListener )。

将其嵌套在命令按钮内,并带有 target设置为与 update 相同的客户端 ID命令按钮的属性:

<p:commandButton ... update=":form">
<p:resetInput target=":form" />
</p:commandButton>

也可以看看:
  • How can I populate a text field using PrimeFaces AJAX after validation errors occur?
  • Reset input fields without executing validation
  • 关于validation - 使用新值更新表单时,如何在验证失败后重置表单中的输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21179403/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com