微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PrimeFaces ajax在另一个字段上更改输入和操作

我有这个代码,在改变输入元素的值时,我会监听并更新其他一些字段.

问题是,当我通过键入内容更改此输入字段的值并使用id:submit命中commandButton时,它会触发侦听器(可能是因为在字段模糊期间检查了值的更改),但不是侦听器X,即commandButton的actionListener.所以我必须再次单击该按钮才能调用侦听器X.

当然,如果我通过单击其他地方然后单击commandButton导致输入字段模糊,它会按预期工作.看起来当输入字段的模糊与commandButton的点击一致时,只发生模糊 – 只是忽略按钮的点击.有任何想法吗?

<p:inputText ...>
  <p:ajax event="change" update="..." listener="..." />
</p:inputText>

...

<p:commandButton id="submit" ... actionListener="X" />

编辑:我使用PrimeFaces v5.1和JSF v2.1.19,FWIW.

解决方法

我有一个类似的问题(可能完全相同)使用JSF和PrimeFaces 6.1,并在此处发布:

PrimeFaces inputText ajax event=valueChange fires AFTER commandButton clicked

@ jasper-de-vries回复一个有效的,有效的解决方案:)

他的帖子的快速摘要是将ajax更新更改为seletor

<p:ajax update="@(form :input:not(button))" />

因为valueChange或change事件更新所有表单,包括按钮,然后忽略按钮上的第一次单击,它将更新特定元素(表单)而不更新其他元素(按钮).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐