我有一个显示在 Kendo 网格中的记录列表,我可以在其中在线创建新记录。要求是,每条记录都有一个唯一的名称。
添加新记录时,我有这个功能,遍历记录列表,并在添加之前检查新记录名称是否唯一。它作为 kendo.ui.validator 的扩展,为其添加自定义规则。功能:
//...
uniquenamevalidation: function (input, params) {
var errorCount = 0;
//check for the rule attribute
if (input.filter("[data-val-uniquenamevalidation]").length && input.val()) {
var dataSource = $("#grid").data("kendoGrid").dataSource;
var data = dataSource.data();
//iterating through all grid elements' Names, and comparing to input
for (var i = 1; i < data.length; i++) {
if (input.val() == data[i].Name) {
errorCount++; //if there are any matches, increase error count
}
}
}
console.log(errorCount == 0);
return errorCount == 0;//returns TRUE if there are no matches, therefore input is unique
}
当输入无效时,函数返回false并且验证应该失败,它会失败并显示正确的错误消息,如预期的那样 http://snag.gy/d5TZR.jpg
问题:当输入有效时,函数返回true并且验证应该通过,出现这个莫名其妙的错误并且不允许我继续。 http://snag.gy/syxds.jpg