0

使用DataTables 1.10 版DataTables 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); } }
        });
    }
});
4

1 回答 1

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;有点神奇的数字,抱歉。)如果您知道源元素的名称或其他识别信息,那么您可以用调用替换我的代码中调整焦点的行到您的更新数量功能。

于 2016-04-08T23:12:26.360 回答