JSF 2.0,Mojarra 2.0.1,PrimeFaces 3.4.1
这是一个p:inputText组件,当按下回车键时,它应该调用一个支持bean方法.
<p:inputText id="commentInput" rendered="#{status.haveComment}"
value="#{statusBean.newComment}"
onkeypress="if (event.keyCode == 13) { onchange(); return false; }">
<f:ajax event="change" listener="#{statusBean.test}" />
</p:inputText>
Run Code Online (Sandbox Code Playgroud)
虽然支持bean有以下方法:
public void test(AjaxBehaviorEvent event) {
System.out.println("Pressed enter!");
}
Run Code Online (Sandbox Code Playgroud)
当按下回车键时它是调用方法,但它有更多; 意外行为案例:
--Click input text
----Type some letters
------Click somewhere else in the page
--------CONSOLE: Pressed enter!
Run Code Online (Sandbox Code Playgroud)
我认为ajax event=change以某种方式检测到变化并调用该方法.如何将此p:inputText组件转换为适当的评论接受者组件,如Facebook或其他人?
我想在用户将值输入<h:inputText>时立即更新图标.
我有以下makup:
<h:inputText id="listprice" value="#{mybean.listPrice}">
<f:converter converterId="mybean.convertPrice"/>
<a4j:ajax event="keyup" render="infoIcon" />
</h:inputText>
Run Code Online (Sandbox Code Playgroud)
如果我真的输入值,一切正常!
但是,如果我重新访问该页面并开始键入值,我的firefox会向我提供我之前会话中要选择的值列表,现在如果我用鼠标选择其中一个值,我就不会收到事件!
我理解这一点,因为在这种情况下没有密钥.所以我绑定另一个这样的事件处理程序:
<h:inputText id="listprice" value="#{mybean.listPrice}">
<f:converter converterId="mybean.convertPrice"/>
<a4j:ajax event="keyup" render="infoIcon" />
<a4j:ajax event="mouseout" render="infoIcon" />
</h:inputText>
Run Code Online (Sandbox Code Playgroud)
......并将各种事件从"onchange,to onmouseout"捆绑起来,没有任何成功.
那么如何立即报道这个"从浏览器 - 选择列表中选择"的事件呢?