如何为Handsontable中的每列定义自定义验证器

问题描述:

示例here完美地解释了如何为Handsontable定义自定义验证器。如何为Handsontable中的每列定义自定义验证器

例子:

(function(Handsontable){ 
    function customValidator(query, callback) { 
     // ...your custom logic of the validator 

     callback(/* Pass `true` or `false` based on your logic */); 
    } 

    // Register an alias 
    Handsontable.validators.registerValidator('my.custom', customValidator); 

})(Handsontable); 

从现在起,您可以使用customValidator像这样:

var hot = new Handsontable(document.getElementById('container'), { 
    data: someData, 
    columns: [ 
    { 
     validator: 'my.custom' 
    } 
    ] 
}); 

由于这个验证验证每个列的数据。 但我只想验证一列只有

如果你看到link上的更高级的例子,你已经分享这可能回答你的问题。

但它将完全取决于您的数据的结构和列的名称。

我在页面上创建了第二个示例的JSFiddle,并添加了自定义验证程序。

从这里就可以看出,他们是按名称引用特定列:

columns: [ 
    { data: 'id', type: 'numeric'}, 
    { data: 'name.first'}, 
    { data: 'name.last'}, 
    { data: 'ip', validator: ipValidatorRegexp, allowInvalid: true}, 
    { data: 'email', validator: emailValidator, allowInvalid: false} 
] 

所以,你可以调用自定义验证这样:

columns: [ 
    { 
     validator: 'my.custom', 
     data: 'columnName' 
    } 
]