1

是否可以触发<p:commandButton>带有属性的 action,actionListener type="button"。我有一个要求,表单中有文本框和命令按钮。如果我在任何文本框中按回车键,commandButton则会调用它。所以我将所有命令按钮类型更改为“按钮”。现在的问题是我正面临那个命令按钮的动作,actionListener 没有触发。我想在不使用 java 脚本的情况下解决它。我也读了 这个链接。谁能告诉我应该在哪里编辑或更改以获得预期的输出。谢谢。

4

1 回答 1

4

使用type="button"是防止输入键提交表单的错误解决方案。它基本上将提交按钮更改为不提交表单的死按钮,仅对附加 JavaScriptonclick和喜欢有用。您只是面临这种错误解决方案的后果。您不应该尝试修复它,而应退后一步,以正确的方式解决最初的问题。

其中一种方法是:

<h:form onkeydown="return event.keyCode != 13">

或者,更一般地,使用 jQuery,它会从限制中跳过 textareas:

$(document).on("keydown", ":input:not[textarea]", function(event) {
    return event.keyCode != 13;
});

注意: jQuery 已经捆绑在 PrimeFaces 中,您不需要单独安装任何脚本。另请注意,您真的不能在这里绕过 JavaScript。更重要的是,PrimeFaces/ajax 组件依赖于 JavaScript,没有 JavaScript 无论如何都无法工作。

于 2013-08-30T14:42:32.687 回答