当用户更改文本并且inputText失去焦点(onchange)时,我想为valueChangeListener
执行p:inputText
。这可能吗?现在它只在我按下返回后执行。
答案 0 :(得分:17)
valueChangeListener
方法需要调用表单提交。这是服务器端事件,而不是客户端事件。只是更改和模糊输入默认情况下根本不提交表单。带上<p:ajax>
来做魔术。
<p:inputText value="#{bean.inputValue}" valueChangeListener="#{bean.inputChanged}">
<p:ajax />
</p:inputText>
然而,虽然you didn't tell anything about the concrete functional requirement for which you thought that this is the right solution,但我只是想提一下valueChangeListener
对于你想到的工作来说往往是错误的工具。请改用<p:ajax listener>
。
<p:inputText value="#{bean.inputValue}">
<p:ajax listener="#{bean.inputChanged}" />
</p:inputText>
请注意,这样就可以通过EL 2.2传递方法参数,然后立即回答your other — actually pretty poor — question可能的基本功能要求。
<p:inputText value="#{bean.inputValue}">
<p:ajax listener="#{bean.inputChanged('arg1', 'arg2')}" />
</p:inputText>
另请注意,如果您对输入的值感兴趣,这可能根本不是解决方案;您可以直接访问inputValue
属性。