加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

jsf-2 – 当需要=“true”时,Ajax事件永远不会触发

发布时间:2020-12-16 02:48:13 所属栏目:百科 来源:网络整理
导读:在我使用的PrimeFaces中: p:inputText required="true" requiredMessage="message" value="#{backingBean.value}"p:ajax event="focus" update="infoText" listener="#{backingBean.something()}" //p:inputText Ajax事件永远不会被触发. 但是,如果我删除re
在我使用的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.由于发生此验证错误,因此永远不会触发操作事件#{backingBean.something()}.

尝试将属性immediate =“true”添加到< p:ajax>标记并查看是否允许事件在验证阶段之前触发.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读