PrimeFaces ajax对另一个字段的输入和操作的更改



我有这段代码,其中,当一个输入元素的值发生变化时,我监听并更新一些其他字段。

问题是,当我通过输入一些东西来改变这个输入字段的值并使用id: submit击中commandButton时,它触发侦听器(可能是因为在字段上的blur期间检查了值的变化),但不是侦听器X,即commandButtonactionListener。因此,我必须再次单击按钮以调用侦听器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 click

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

他的文章的一个快速总结是改变ajax更新为一个选择器:

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

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

相关内容

  • 没有找到相关文章

最新更新