输入时提交带有 primefaces 小部件的表单

Submit form with primefaces widgets on enter

我需要让我的 primefaces p:commandLink 在用户按下 enter 键时提交一个 h:form

我尝试了 here 和其他几个地方建议的解决方案。我也尝试了 primefaces defaultCommand。无论我尝试什么,浏览器似乎都注意到按下了按钮,但没有执行 action

这些是我表单的小部件:

<p:autoComplete id="acSimple" value="#{home.searchKeywords}" completeMethod="#{home.completeText}" style="" />
<p:commandLink id="srchbutton" action="#{home.goToSearchResults}" onclick=" $('.prgrs').show();">
    <h:graphicImage id="srch" name="images/searchbutton.jpg" class="img-responsive" style="display: inline-block; margin-left:0px; margin-bottom:-0px;"  />
</p:commandLink>
<p:defaultCommand target="srchbutton" />

<h:form onkeypress="if (event.keyCode == 13) { document.getElementById('form:srchbutton').click(); return false; }">

确保您 link 的真实 ID 是 "form:srchbutton" 或输入任何内容。 您可以使用开发者工具或 firebug 找到它。

Dijana 的解决方案是正确的,但应该使用操作 onkeyup 而不是 onkeypress

ENTER 是一个动作事件,因此它不会被捕获基本字符和元字符的 onkeypress 捕获。 因此,您需要 onkeydown(如果在下一页加载后 ENTER 关闭,这可能会导致问题)或 onkeyup。