使用DataTables version 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); } }
});
}
});
答案 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;有点神奇的数字,对不起。) 如果您知道有关源元素的名称或其他识别信息,那么您可以替换我的代码中的行,该行通过调用更新数量函数来调整焦点。