【发布时间】:2016-02-28 14:35:57
【问题描述】:
在我的 Handsontable 中,我希望用户能够按验证失败的行进行排序。我在数据集的开头添加了一个空白列,并且在 aftervalidate 挂钩中,我将此字段设置为 1 用于失败的行。
afterValidate: function (isValid, value, row, prop, source) {
if (!isValid) hot.setDataAtCell(hot.sortIndex[row][0], 0, "1");
else if (source=="edit") hot.setDataAtCell(hot.sortIndex[row][0], 0, "");
},
columnSorting: true,
afterColumnSort: function (column, order) {
hot.validateCells(function (valid) {});
}
我遇到了一个奇怪的问题,它并不总是标记正确的行。正如您在这个小提琴中看到的那样,如果您重复对列进行排序,则在每第三次排序时,错误标志与无效行不匹配,并且在控制台中有一个“未捕获的类型错误:无法读取未定义的属性 '0'” .
https://jsfiddle.net/dk9d1aqr/3/
此外,如果您尝试将表格设置为开始排序,验证将完全失败:
//validation works with this
columnSorting: true,
//validation fails with this
columnSorting: {column: 2, sortOrder: true},
关于如何使验证和排序协同工作的任何想法?
【问题讨论】:
-
顺便说一句,我知道我的 afterValidate 函数中有一个错误,如果您尝试验证多个列...如果有人知道一种检查无效单元格的好方法,我将不胜感激行(和整个表)
标签: jquery validation sorting handsontable