我想在用户更改文本并且 inputText 失去焦点(onchange)时执行valueChangeListener
。p:inputText
这可能吗?现在它只在我按回车后执行。
问问题
26238 次
1 回答
20
该valueChangeListener
方法需要调用表单提交。这是服务器端事件,而不是客户端事件。只是更改和模糊输入默认情况下根本不会提交表单。带上一个<p:ajax>
来做魔术。
<p:inputText value="#{bean.inputValue}" valueChangeListener="#{bean.inputChanged}">
<p:ajax />
</p:inputText>
但是,尽管您没有说明您认为这是正确解决方案的具体功能需求,但我只想提一下,valueChangeListener
对于您心目中的工作而言,这往往是错误的工具。改为使用<p:ajax listener>
。
<p:inputText value="#{bean.inputValue}">
<p:ajax listener="#{bean.inputChanged}" />
</p:inputText>
请注意,这将使得通过 EL 2.2 传递方法参数成为可能,这将立即回答您的另一个问题(实际上很差)可能存在的潜在功能需求。
<p:inputText value="#{bean.inputValue}">
<p:ajax listener="#{bean.inputChanged('arg1', 'arg2')}" />
</p:inputText>
另请注意,如果您实际上对输入的值感兴趣,这可能根本不是解决方案;您可以直接访问该inputValue
属性。
也可以看看:
于 2012-12-20T15:41:04.893 回答