我正在使用handsontable库,当我发现there isn't an onEdit
callback时,我感到非常惊讶。
我尝试使用that same issue中的一个用户提供的脚本来创建它,但它似乎是一个旧版本,它不再起作用了。
我试图弄清楚如何添加一个钩子,但是它上面的文档非常差。 有没有人知道如何为handontable创建这样的回调?
答案 0 :(得分:2)
仅捕获双击是不够的,因为用户可以使用 Enter 或 F1 键进一步进入编辑模式。
缺少onEdit
回调的一个解决方案是注册自定义编辑器。这样它很适合所有编辑 - 保存 - 退出生命周期(例如, Esc 键关闭编辑器并丢失所有更改)。这是一个非常简化的编辑器,它扩展了内置和默认的TextEditor
:
var LoggingEditor = Handsontable.editors.TextEditor.prototype.extend();
LoggingEditor.prototype.getValue = function() {
console.log('User finished editing the cell, the value will be set to: '
+ this.TEXTAREA.value);
return this.TEXTAREA.value;
};
LoggingEditor.prototype.setValue = function(newValue){
console.log('User started editing the cell, value shown in cell is: '
+ newValue);
this.TEXTAREA.value = newValue;
};
然而,这个解决方案并不通用,因为如果使用多个编辑器,它也必须被替换。但它应该在简单的情况下工作。完整的示例可以在this fiddle中找到。