制表符:我使用的是验证模式手册,但如果无效,我想在单元格上阻止 还原值重新触发编辑阻止验证模式

问题描述

我正在使用Tabulator和验证模式ManualHighlight。但与此同时,我也对阻止功能感兴趣。但是由于某些原因,我不想检查特定行编辑中的所有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
});