相关疑难解决方法(0)

按Enter键时,Jsf从输入文本调用bean方法

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或其他人?

primefaces jsf-2

21
推荐指数
1
解决办法
3万
查看次数

在<h:inputText>上使用哪个事件来覆盖所有更改

我想在用户将值输入<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"捆绑起来,没有任何成功.

那么如何立即报道这个"从浏览器 - 选择列表中选择"的事件呢?

jsf richfaces ajax4jsf jsf-2

4
推荐指数
1
解决办法
9869
查看次数

标签 统计

jsf-2 ×2

ajax4jsf ×1

jsf ×1

primefaces ×1

richfaces ×1