我希望使用p:ajax
来显示带有搜索建议的素数叠加层,如下所示:
<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处理程序并再次检查输入作为解决方法。
答案 0 :(得分:3)
仅在输入有效时才执行p:ajax
只有在客户端验证时才有可能,因为您已经找到了解决方法。
替代方法是仅在没有验证错误时才执行oncomplete
。
oncomplete="if (args && !args.validationFailed) showOverlay()"
由于这里提到的原因,必须进行双重检查和丑陋的XML转义:Keep p:dialog open when a validation error occurs after submit。