在inputText中按Enter键后执行命令

Al2*_*l2x 4 jsf primefaces

Mojarra 2.1.5/PrimeFaces 3.5

我不知道如何解释.我有一个inputText和commandButton当我在inputText中键入内容并按Enter键时,我需要自动执行commandButton.

<p:inputText id="txtProducao" required="false"
    value="#{ManagedBean.xxxPreco.producaoDia}"
    requiredMessage="#{bundle.xxPreco_xProdx}>
</p:inputText>
<p:commandButton id="buttonProducaoDia" 
    icon="ui-icon-check"
    actionListener="#{ManagedBean.calculaProdxxx}"
    update="txtValorSoma">
</p:commandButton>
Run Code Online (Sandbox Code Playgroud)

我需要为每个inputText键入一些值,然后在Enter后我需要执行相应的commandButton:

在此输入图像描述

Lau*_*ntG 5

如果你有一个p:commandButton,那么按下ENTER应该提交表格.如果p:commandButton表格中有很多.您可以使用以下命令定义默认提交按钮p:defaultCommand.

<p:inputText id="txtProducao" required="false"
    value="#{ManagedBean.xxxPreco.producaoDia}"
    requiredMessage="#{bundle.xxPreco_xProdx}>
</p:inputText>
<p:commandButton id="buttonProducaoDia" 
    icon="ui-icon-check"
    actionListener="#{ManagedBean.calculaProdxxx}"
    update="txtValorSoma">
</p:commandButton>
<p:defaultCommand target="buttonProducaoDia" />  
Run Code Online (Sandbox Code Playgroud)

[编辑]

我认为你必须使用JavaScript解决它,如下所示:

<p:inputText id="txtProducao" required="false"
    value="#{ManagedBean.xxxPreco.producaoDia}"
    requiredMessage="#{bundle.xxPreco_xProdx}>
    <p:ajax event="keydown" update="@form" onstart="if (event.keyCode != 13) { return false; }" />
</p:inputText>
Run Code Online (Sandbox Code Playgroud)

您也可以将添加actionListenerp:ajax元素.在JavaScript中,您也可以调用提交.