我有这个代码,其中,在改变输入元素的值时,我会监听并更新其他一些字段。
问题是,当我通过键入内容更改此输入字段的值并点击commandButton
并使用id:submit
时,它会触发侦听器(可能是因为检查了值的更改)在字段blur
期间,但不是收听者X
,即actionListener
的{{1}}。所以我必须再次单击该按钮才能调用侦听器commandButton
。
当然,如果我通过点击其他地方然后点击X
导致输入字段模糊,它会按预期工作。看起来当输入字段的模糊与commandButton
的点击一致时,只有模糊发生 - 按钮的点击被简单地忽略。有什么想法吗?
commandButton
编辑:我使用PrimeFaces v5.1和JSF v2.1.19,FWIW。
答案 0 :(得分:0)
我有一个类似的问题(可能完全相同)使用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事件会更新所有表单,包括按钮,然后忽略按钮上的第一次单击。