【问题标题】:Execute Command after hit Enter in a inputText在 inputText 中按 Enter 后执行命令
【发布时间】:2013-12-13 19:29:04
【问题描述】:

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:

【问题讨论】:

    标签: jsf primefaces


    【解决方案1】:

    如果您有一个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 中,您也可以调用提交。

    【讨论】:

    • 我有 10 个 inputText 和 commandButton。每个 CommandButton 都位于每个 inputText 之后。如何在每个 inputText 中输入内容并按 Enter 执行相关的 commandButton ?
    • 您是否知道关于我所做的第一条评论我该怎么做?谢谢
    • 我更新了我的答案。很遗憾,我不确定是否有更好的解决方案。
    猜你喜欢
    • 1970-01-01
    • 2020-01-21
    • 1970-01-01
    • 2019-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-31
    • 2012-01-04
    相关资源
    最近更新 更多