当用户在h:form输入字段上按Enter键时,通过ajax调用动作监听器

时间:2013-10-04 15:36:43

标签: jsf richfaces

我有这个表格

<h:form id="formId" prependId="false">
    Descrizione <h:inputTextvalue="#{bean.description}" />
    Prezzo: <h:inputText value="#{optionalManaged.price}" />
    <a4j:commandLink styleClass="button smallButton" actionListener="#{bean.method}"
                     execute="formId" render="otherDiv">
        +
    </a4j:commandLink>

</h:form>

目前,按a4j:commandLink将两个输入filelds的值存储在我的bean中并正确调用我的动作侦听器。

我想要发生的是在第二个inputText上按Enter键也是如此。

我通过在inputText内部通过jquery调用a4j:commandLink click()进行了一次天真的尝试。显然,这不起作用。

我对如何做到这一点有任何想法?

1 个答案:

答案 0 :(得分:3)

您需要检测是否按下了Enter键并以编程方式单击命令链接。只是不要忘记设置其id以及输入组件的id。页面加载完成后需要添加的JavaScript是:

document.getElementById('input').onkeypress = function(e) {
    var event = e || window.event;
    var code = event.which || event.keyCode;
    if (code == 13) {
        document.getElementById('link').click();
        return false;
    }
}