У меня есть список записей, отображаемых в сетке кендо, где я могу создавать новые записи в режиме реального времени. Требование состоит в том, чтобы каждая запись имела уникальное имя.
При добавлении новой записи у меня есть эта функция для перебора списка записей и проверки уникальности имени новой записи перед ее добавлением. Он является расширением 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