问题描述
我正在使用Tabulator
和验证模式Manual
或Highlight
。但与此同时,我也对阻止功能感兴趣。但是由于某些原因,我不想检查特定行编辑中的所有Validators
,这就是为什么我使用突出显示或手动模式。
所以我的问题是,在同一条件下(在某些条件下)调用ValidationFailed
时如何阻止用户
解决方法
还原值
如果您想还原该值,可以在传递给 getOldValue 和 setValue 函数的混合em> validationFailed 回调以检索单元格的旧值并将其重新设置。
您可能现在想在单元格上调用* clearValidation 函数以清除无效标志,因为该值已被重置。
var table = new Tabulator("#example-table",{
validationFailed:function(cell,value,validators){
cell.setValue(cell.getOldValue());
cell.clearValidation();
},});
重新触发编辑
如果要让用户继续在单元格上继续编辑,则应调用单元格组件上的 edit 功能
var table = new Tabulator("#example-table",validators){
setTimeout(() => { //give the edit time to finish before retriggering
cell.edit(); //retrigger the edit
},100)
},});
阻止验证模式
我假设您要采用这种方法,因为您希望在不阻止编辑的情况下将某些列标记为无效,而在某些情况下则希望阻止。如果要阻止所有无效的编辑,则应使用 阻止 验证模式:
var table = new Tabulator("#example-table",{
validationMode:"highlight",//highlight cells with validation errors but dont stop the edit
});