使用返回/输入键将编辑的单元格保存在Primefaces 3.4单元内可编辑数据表中

问题描述 投票:7回答:2

正如标题所言,在按下Enter /返回键时,我希望具有相同的功能,而不是在切换到编辑模式后单击“保存”按钮。

我尝试使用p:hotkey来执行此操作,但显然p:hotkey不适用于集中的可编辑组件。

除了研究JQuery之外,还有其他方法吗?

jquery jsf primefaces
2个回答
8
投票

除了研究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文件中。这涵盖了单元格编辑器中的所有输入字段。


0
投票

BalusC code的稍加修改的版本(另请参见PrimeFaces issue 433:]

  • 防止在单击“ Enter”时向表中添加新行
  • 取消对“转义”的编辑单击
$(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;
    }
});
© www.soinside.com 2019 - 2024. All rights reserved.