jQuery DataTables编辑器陷阱或句柄输入键

时间:2015-07-24 15:14:03

标签: datatables jquery-datatables-editor

使用DataTables version 1.10DataTables Editor。我们也在使用AngularJS。

submitOnReturn的文档中,文字说明:

  

请注意,触发后,此操作将调用submit()E   直接且没有任何配置选项。如果您已定义   您需要的按钮单击处理程序中的自定义操作   禁用此选项并将其替换为自定义事件处理程序或   听取返回键事件。

我们需要调用自定义按钮功能(下面的代码示例中为$ scope.updateQuantity)。是否有一个在Enter键上单击调用它的示例?

$('#dtProductChildren').on('click', 'tbody td:last-child', function (e) {
    if (product.SomeValue === false) {
        childrenTableEditor.inline(this, 'Quantity', {
            submitOnReturn: false, // what else needs to happen to make this work?
            buttons: { label: 'Update', fn: function () { $scope.updateQuantity(this); } }
        });
    }
});

1 个答案:

答案 0 :(得分:1)

我相信您可以查找回车键事件,并在检测到时执行自定义操作。我有一个实例,我拦截了输入键并遍历到另一个表单字段(根据检测到插入符的位置而不同的字段)。这就是我过去所获得的效果:

$(document).ready(function() {
    document.onkeypress = function(event) {
        var code = event.keyCode;
        var node = (event.target) ? event.target : ((event.srcElement) ? event.srcElement : null);
        if (node.name == 'serialNumber' && code != null && code == 13) {
            document.getElementById('locationID').focus();
            return false;
        }
        return true;
    };
});

这将创建一个函数,该函数将使用 每一个按键 触发,以检查按下的键是否为输入。 (这是代码== 13;有点神奇的数字,对不起。) 如果您知道有关源元素的名称或其他识别信息,那么您可以替换我的代码中的行,该行通过调用更新数量函数来调整焦点。