输入时提交带有 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。
我需要让我的 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。