在inputText中按Enter键后执行命令

时间:2013-12-13 19:29:05

标签: 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>

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

enter image description here

1 个答案:

答案 0 :(得分: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" />  

[编辑]

我认为您必须使用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>

您还可以向actionListener元素添加p:ajax。在JavaScript中,您也可以调用提交。