gpt4 book ai didi

jsf - 在不执行验证的情况下重置输入字段

转载 作者:行者123 更新时间:2023-12-04 01:28:12 25 4
gpt4 key购买 nike

我有一个 Facelets View ,如下所示:

<h:form id="f1">
<p:panelGrid id="p1" columns="2">
<p: inputText value="Distance Travelled::/><p:inputText value="#{airTransportUsage.distance}" immediate="true"
required="true" requiredMessage="Distance Travelled Field cannot be left blank.."
converterMessage="Distance Travelled must be a number"
validatorMessage="Distance Travelled must be a valid number.."
id="dis">
<f:validateLongRange minimum="1"/>
</p:inputText>
<p:commandButton value="Reset" action="#{airTransportUsage.reset}" update=":f1:p1" />
</p:panelGrid>
</h:form>

当点击重置按钮时,由于验证,相应的方法永远无法执行。我不能用 immediate="true"在我的重置按钮上,因为它会产生一些其他问题。

最佳答案

<p:commandButton>默认情况下确实处理整个表单( process="@form" ),您可以通过仅指定 process 中的当前组件来更改此设置属性。

<p:commandButton value="Reset" ... process="@this" />

但是,如果表单已经预先验证过,这将失败。已标记为无效的输入字段不会使用新模型值(您自己重置)进行更新。如果您使用的是 PrimeFaces 3.4,则嵌入 <p:resetInput> 在按钮中:
<p:commandButton value="Reset" ... process="@this">
<p:resetInput target="@form" />
</p:commandButton>

如果您还没有使用 PrimeFaces 3.4 并且无法升级到它,您可以使用 OmniFaces ResetInputAjaxActionListener 为此。

一种完全不同的替代方法是通过新的 GET 请求刷新当前页面。
<p:button value="Reset" />

关于jsf - 在不执行验证的情况下重置输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12619228/

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