我有这段代码:
<p:inputText id="abc" value="#{myBean.name}" >
<f:validator validatorId="mandatoryInput" />
<p:ajax event="change" update="..." listener="#{myBean.myFunction()}" />
</oct:inputTextUpper>
当Validator抛出一个新的ValidatorException时,跳过。即使验证失败,是否可以启动myFunction()? 谢谢:))
答案 0 :(得分:1)
这是默认的JSF行为。作为一种解决方案,你可以使用f:event:
<p:inputText id="abc" value="#{myBean.name}">
<f:validator validatorId="mandatoryInput" />
<p:ajax event="change" update="..." listener="#{myBean.myFunction}" />
<f:event type="preRenderComponent" listener="#{myBean.callMyFunction}" />
</p:inputText>
在MyBean中添加以下方法:
public void callMyFunction(ComponentSystemEvent e) {
UIInput input = (UIInput) e.getComponent();
if (!input.isValid()) {
myFunction();
}
}