7

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

我试图用 p:hotkey 来做到这一点,但显然 p:hotkey 不适用于有针对性的可编辑组件。

除了深入研究 JQuery 之外,还有其他方法可以做到这一点吗?

4

2 回答 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 文件中即可。这涵盖了单元格编辑器中的所有输入字段。

于 2013-09-04T12:24:17.610 回答
0

BalusC 代码的略微修改版本(另见PrimeFaces 问题 433):

  • 防止在“Enter”单击时向表中添加新行
  • 取消编辑“Escape”点击
$(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;
    }
});
于 2019-10-07T11:38:18.290 回答