我想用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 && !args.validationFailed) showOverlay()"
双重检查和丑陋的XML转义是必要的,原因如下:当提交后出现验证错误时保持p:对话框打开