mys*_*cks 5 ajax jsf primefaces
我有这段代码,在输入元素的值发生变化时,我监听并更新一些其他字段。
问题是,当我通过输入某些内容并使用commandButtonid:来更改此输入字段的值时submit,它会触发侦听器(可能是因为在字段上检查值的更改blur),但不会触发侦听器X,即的actionListener为commandButton. 因此,我必须再次单击该按钮才能X调用侦听器。
当然,如果我通过单击其他地方然后单击 来导致输入字段模糊,它会按预期工作commandButton。看起来,当输入字段的模糊与单击 重合时commandButton,只会发生模糊 - 按钮的单击将被忽略。有任何想法吗?
<p:inputText ...>
<p:ajax event="change" update="..." listener="..." />
</p:inputText>
...
<p:commandButton id="submit" ... actionListener="X" />
Run Code Online (Sandbox Code Playgroud)
编辑:我使用 PrimeFaces v5.1 和 JSF v2.1.19,FWIW。
我使用 JSF 和 PrimeFaces 6.1 遇到了类似的问题(也许完全相同),并将其发布在这里:
PrimeFaces inputText ajax event=valueChange 在单击 commandButton 后触发
@jasper-de-vries 回复了一个有效的、可行的解决方案:)
他的帖子的快速摘要是将 ajax 更新更改为选择器,如下所示:
<p:ajax update="@(form :input:not(button))" />
Run Code Online (Sandbox Code Playgroud)
它将更新特定元素(表单),但不会更新其他元素(按钮),因为 valueChange 或 Change 事件更新所有表单,包括按钮,然后忽略第一次单击按钮。
| 归档时间: |
|
| 查看次数: |
9256 次 |
| 最近记录: |