正如标题所说,切换到编辑模式后,我希望在按Enter / return键时具有相同的功能,而不是单击“保存”按钮。
我尝试使用p:hotkey执行此操作,但显然p:hotkey不适用于可聚焦的可编辑组件。
除了深入研究JQuery之外还有其他方法吗?
答案 0 :(得分:7)
除了深入研究JQuery之外还有其他方法吗?
是的,使用普通的香草JS。但这最终可能是非跨浏览器兼容的样板代码。不开玩笑,不可能通过JSF这是不可能的,因为魔术真的需要在客户端发生。由于<p:cellEditor>
不支持所请求的功能(因此它本身只能生成必要的jQuery代码),您需要自己编写。
去过那里,做到了:
$(document).on("keydown", ".ui-cell-editor-input input", function(event) {
if (event.keyCode == 13) {
$(this).closest("tr").find(".ui-row-editor .ui-icon-check").click();
}
});
把它放在一些全局的JS文件中。这涵盖了单元格编辑器中的所有输入字段。
答案 1 :(得分:0)
BalusC code的略微修改版本(另请参见PrimeFaces issue 433):
$(document).on("keydown", ".ui-cell-editor-input input", function(event) {
if (event.keyCode == 13) { // Enter
$(this).closest("tr").find(".ui-row-editor .ui-icon-check").click();
return false; // prevents executing other event handlers (adding new row to the table)
}
if (event.keyCode == 27) { // Escape
$(this).closest("tr").find(".ui-row-editor .ui-icon-close").click();
return false;
}
});