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

发布时间:2020-08-03 整理:编程之家
编程之家收集整理的这篇文章主要介绍了如何在使用新值更新验证失败后重置表单中的输入字段编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随编程之家小编过来看看吧!
我正在使用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).

将其嵌入命令按钮,目标设置为与命令按钮的更新属性相同的客户端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

总结

以上是编程之家为你收集整理的如何在使用新值更新验证失败后重置表单中的输入字段全部内容,希望文章能够帮你解决如何在使用新值更新验证失败后重置表单中的输入字段所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入编程之家官方QQ群:1065694478
编程之家官方公众号

微信公众号搜索 “ 程序精选 ” ,选择关注!

微信公众号搜索 “ 程序精选 ”
精选程序员所需精品干货内容!