Jsf PrimeFaces p:ajax事件=更改和p:commandButton操作
我的申请有点问题。我有一个Jsf PrimeFaces p:ajax事件=更改和p:commandButton操作,jsf,primefaces,Jsf,Primefaces,我的申请有点问题。我有一个和一个侦听器,用于更改事件。我的页面上还有一个。ajax侦听器和在仅尝试调用一个侦听器时都能正常工作。当用户编辑并且仍然关注该字段时,试图按下触发更改事件ajax侦听器的(预期)但未调用时,就会出现问题 这是我的密码: <p:inputText id="code" value="#{myBean.code}" > <p:ajax event="change" listener="#{myBe
和一个
侦听器,用于更改事件。我的页面上还有一个
。ajax侦听器和
在仅尝试调用一个侦听器时都能正常工作。当用户编辑
并且仍然关注该字段时,试图按下触发更改事件ajax侦听器的
(预期)但未调用
时,就会出现问题
这是我的密码:
<p:inputText id="code"
value="#{myBean.code}" >
<p:ajax event="change"
listener="#{myBean.method1(myBean.code)}"
update="@(form :input:not(button))" />
</p:inputText>
<p:commandButton id="searchButton"
value="Click me"
action="#{myBean.method2(myBean.code)}"
process="@this code"
update="@form"
oncomplete="PF('myDlg').show()" />
我读过这个问题,但答案似乎并没有为我解决这个问题
我曾尝试在ajax侦听器上处理该按钮,并尝试将该按钮置于另一种形式,而不是从ajax侦听器更新该形式,但我无法理解。我想做的是可能的吗
提前感谢您的帮助。如果您的项目运行在JSF 2.2运行时上,您可以利用命名空间
http://xmlns.jcp.org/jsf/passthrough
我也有同样的问题(第一次按下按钮不起作用,下一次按下按钮起作用),并通过以下方式解决了这个问题:
xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"
oninput
属性添加到p:inputText
(不需要p:ajax
)
oninput
属性将帮助您的输入字段检测任何类型的更改事件:键入、删除、复制、粘贴、剪切等。。。并通过p:remoteCommand
将它们传递给托管bean
您还将解决“按钮”问题。尝试使用
blur
而不是change
?@Kukeltje是的,同样的问题也会发生
<p:inputText id="code" value="#{myBean.code}" pt:oninput="onTextChanged()"/>
<p:remoteCommand delay="300" name="onTextChanged"
actionListener="#{myBean.method1(myBean.code)}"
update="@(form :input:not(button))" />