在 PrimeFaces 中,当我使用:
<p:inputText required="true"
requiredMessage="message"
value="#{backingBean.value}">
<p:ajax event="focus"
update="infoText"
listener="#{backingBean.something()}" />
</p:inputText>
Ajax 事件永远不会被触发。
但是,如果我删除 required="true"一切正常并且事件会触发。
谁能告诉我如何将 p:inputText 与 p:ajax 和 required="true"一起使用?
最佳答案
这可能是因为当您获得文本字段的焦点时,会发生一个 ajax 事件,该事件会回发页面上组件的 ViewState。
当它这样做时,它试图将文本字段的当前值设置为 #{backingBean.value}
这是空的,导致抛出 ValidatorException。因为这个验证错误发生了 Action 事件 #{backingBean.something()}
永远不会被解雇。
尝试添加属性 immediate="true"
到 <p:ajax>
标记并查看是否允许在验证阶段之前触发事件。
关于jsf-2 - Ajax 事件永远不会在 <p :inptText> when required ="true" 中触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6666263/