如何在 p:ajax 提交的输入组件上获得 p:resetInput 功能

How to get p:resetInput functionality on p:ajax-submitted input component

我有一个文本字段和一个验证器,如下所示。它使用 p:ajax 在值更改的那一刻提交,如果字段不通过,验证器将停止提交。用户按预期收到错误消息(这就是 update="msgs .." 所做的)。

然而,当它没有通过时,我想将值重置为之前的值。

                                <p:inputText id="txtName"
                                             value="#{workspace.selectedPath.name}"
                                             style="width: 20%"
                                             validator="validateName"
                                             valueChangeListener="#{workspace.doNameChanged}"
                                             >
                                    <p:ajax update="msgs formTree" />
                                </p:inputText>

下面的 link 展示了如何在 PrimeFaces 中使用 p:resetInput 标签,但它不能作为 p 的一部分工作: inputText 因为它不是 ActionSource。如果你让它成为 p:ajax 标签的子标签,它就会被忽略。有什么建议么?

How to reset input fields in a form after validation fail when updating it with new values

从 PrimeFaces 4.0 开始,您可以为此使用 <p:ajax resetValues>

<p:inputText ...>
    <p:ajax ... resetValues="true" />
</p:inputText>

另请参阅:

  • How can I populate a text field using PrimeFaces AJAX after validation errors occur?