是否可以使用属性<p:commandButton>
触发type="button"
的动作,actionListener。我有一个要求,在表单中有文本框和命令按钮。如果我在任何文本框中按Enter键,则会调用commandButton
。所以我将所有命令按钮类型更改为“按钮”。现在问题我面临的是命令按钮的动作,actionListener没有触发。我想用out脚本解决它。我也读了This Link。任何人都可以告诉我应该在哪里编辑或更改以获得预期的输出。感谢。
答案 0 :(得分:4)
使用type="button"
是阻止输入密钥提交表单的错误解决方案。它基本上将提交按钮更改为一个不提交表单的死按钮,仅用于附加JavaScript onclick
和喜欢。你只是面对这个错误解决方案的后果。您不应该尝试修复它,而是退后一步,以正确的方式解决初始问题。
其中一种方式是:
<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,它将无法工作。