只有当输入有效时才执行p:ajax



我想用p:ajax显示一个带有搜索建议的primefaces叠加,如下所示:

<p:inputText value="#{bean.input}" required="true" 
    validatorMessage="Add at least 3 characters">
    <f:validateLength minimum="3" maximum="64"/>
    <p:ajax event="keyup" delay="200" process="@this" 
        listener="#{bean.createSuggestions()}"
        update="overlay"
        oncomplete="showOverlay()"/>
</p:inputText>

问题是,没有验证发生。

我可以使用javascript的onstart处理程序,并再次检查输入作为一个解决方案

仅当输入有效时执行p:ajax

这只有在客户端进行验证时才有可能,正如您已经找到的解决方案。

另一种方法是只在没有验证错误的情况下执行oncomplete

oncomplete="if (args &amp;&amp; !args.validationFailed) showOverlay()"

双重检查和丑陋的XML转义是必要的,原因如下:当提交后出现验证错误时保持p:对话框打开

相关内容

  • 没有找到相关文章

最新更新